Как изменить JLabel на вкладке JTabbedPane? - PullRequest
1 голос
/ 22 июля 2011

Скажем, у вас был JTabbedPane. И на каждой из этих вкладок у вас есть JPanel с JLabel и JButton. Как вы можете изменить текст JLabel после того, как он уже был добавлен на панель?

Ответы [ 2 ]

3 голосов
/ 22 июля 2011

Вы можете использовать jLabelN.setText("New Text"); как обычно. Неважно, куда добавлена ​​метка. Вам просто нужна переменная jLabelN, чтобы быть доступными.

1 голос
/ 23 июля 2011

Вы можете легко написать геттеры и сеттеры для ваших компонентов 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");
}

}

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

Удачи

...