Как изменить 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");
}

}

Использование геттеров и сеттеров - это стандартный способ взаимодействия данных объектов

Удачи

Другие вопросы по тегам