我有 2 个 JTabbedPane
。我无法刷新数据。请帮助,这是我的代码:
面板 1:
//.. 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);
}
}
Pane 2:
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);
}
这是我的主要类(class):
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
类。
最佳答案
注意:显然这没有解决问题。
可以尝试的一件事是:
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
}
有可能您的面板没有重新绘制。
关于Java JTabbedPane,更新其他选项卡 JLabel 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3548176/