2011-07-22 3 views
1

Dites donc que vous avez un JTabbedPane. Et sur chacun de ces onglets, vous avez un JPanel avec un JLabel, et un JButton. Comment pouvez-vous modifier le texte de JLabel après qu'il a déjà été ajouté au volet?Comment modifier JLabel sur l'onglet JTabbedPane?

Répondre

3

Vous pouvez utiliser jLabelN.setText("New Text"); comme d'habitude. Peu importe où l'étiquette est ajoutée. Vous avez juste besoin que votre variable jLabelN soit accessible.

+0

Ah. J'avais une méthode qui s'occupait de la mise en place de l'onglet, donc chaque étiquette avait le même nom, mais je l'ai fait comme vous l'avez dit, plutôt simple. Je vous remercie. – nyx

+2

@nyx: S'il vous plaît envisager d'accepter cette réponse; voir la [faq] pour plus de détails. – trashgod

1

Vous pouvez facilement écrire des accesseurs pour vos composants d'interface graphique comme un (juste quelques des snippets)

public class A extends JPanel{ 

    JLabel aLabel=new JLabel();//field 

    public A(){ 

    this.add(aLabel); 

//GUI init here... 
    } 



    public void setLabelText(String text) 
    { 
     this.aLabel.setText(text); 
    } 

    public String getLabelText(){return this.aLabel.getText(); } 
... 
} 

Appelons maintenant que ...

public class B extends JFrame 
{ 
A a=new A(); // 
A a1=new A(); 

JTabbedPane tp=new JTabbedPane(); 

public B() 
{ 

a.setLabelText("Hello World!"); 
a1.setLabelText("Hello World Again!"); 

tb.add("tab 0", a); 
tb.add("tab 1", a1); 
// ... 
} 

public void actionPerformed(ActionEvent e) 
{ 
    /*a button clicked... 
    Lets get the tab label text value */ 

    JOptionPane.showMessageDialog(this,"tab 0 label text is: "+this.a.getLabelText()); 
    this.a.setLabelText("Have a good Java Coding"); 
} 

} 

En utilisant des accesseurs il est un moyen standard d'interaction des données d'objets

Bonne chance