我有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
班。
答案 0 :(得分:1)
注意:显然这并没有解决问题。
要尝试的一件事是:
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
}
您的小组有可能没有重新粉刷。
答案 1 :(得分:0)
可能是一个拼写错误但是 - actionPerformed()
您将文本字段的内容存储在userInput
中,但使用finalInput
更新了pane2。