Java JTabbedPane, обновить значение JLabel других вкладок? - PullRequest
2 голосов
/ 23 августа 2010

у меня 2 JTabbedPane.Я не могу обновить данные.Пожалуйста помогите, вот мой код:

pane1:

//.. some codes...
// This is the ButtonListener
private class ButtonListener implements ActionListener
{
    public void actionPerformed (ActionEvent event)
    {
      userInput = tf.getText(); // tf is JTextField
      //System.out.println("the input is "+ finalInput);
      pane2.updateData(userInput);
    }
} 

pane2:

public void updateData(String s){
    System.out.println("Update data function is called");
    labelUser.setFont(new Font("Arial", Font.BOLD, 30));
    labelUser.setText("Updated text here " + s);
}   

Вот мой основной класс:

import java.awt.*;
import javax.swing.*;

public class Main {
public static Pane2 p2 = new Pane2();
    public static void main(String[] args) {

        JFrame f= new JFrame ("My Frame");
        f.setDefaultCloseOperation (JFrame .EXIT_ON_CLOSE);

        JTabbedPane tp = new JTabbedPane();
        p2 = new Pane2();

        tp.addTab("Pane1", new PaneFirst(p2));
        tp.addTab("Pane2", new PaneSecond());

        f.add(tp);
        f.pack();
        f.setVisible(true);
   }
}

labelUser никогда не обновляется, но я отслеживаю функцию updateData, которая вызывается.Почему текст в labelUser не обновляется?

РЕДАКТИРОВАТЬ:

"labelUser" из pane2.java класса.

Ответы [ 2 ]

1 голос
/ 23 августа 2010

Примечание: Очевидно, это не решило проблему.

Одна вещь, которую можно попробовать:

public void updateData(String s){
    System.out.println("Update data function is called");
    labelUser.setFont(new Font("Arial", Font.BOLD, 30));
    labelUser.setText("Updated text here " + s);
    repaint(); // add this line to tell your pane to repaint itself
}  

Есть вероятность, что ваша панель просто не перекрашивается.

0 голосов
/ 23 августа 2010

Может быть опечатка, но - в actionPerformed() вы сохраняете содержимое текстового поля в userInput, но используете finalInput для обновления панели 2.

...