Как изменить JLabel на вкладке JTabbedPane?
Скажем, у вас был JTabbedPane. И на каждой из этих вкладок у вас есть JPanel с JLabel и JButton. Как вы можете изменить текст JLabel после того, как он уже был добавлен на панель?
2 ответа
Ты можешь использовать jLabelN.setText("New Text");
по-прежнему. Неважно, куда добавлена метка. Вам просто нужно, чтобы ваша переменная jLabelN была доступна.
Вы можете легко написать геттеры и сеттеры для ваших компонентов GUI, такие как (только некоторые фрагменты)
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(); }
...
}
Давайте назовем это сейчас как...
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");
}
}
Использование геттеров и сеттеров - это стандартный способ взаимодействия данных объектов
Удачи