Java JTabbedPane,更新其他选项卡 JLabel 值?

标签 java swing jlabel jtabbedpane

我有 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/

相关文章:

java - 将 JLabel 添加到 JList 中?

java - 如果文本不适合 JLabel,我想减小字体大小

java - 使用 cookie 和内容类型 Text/plain 的放心发布请求

java - 转义时如何使用 CSV 拆分\

java - JApplet 上的分层对象(扩展 JComponet)

java - 使用JMenuBar、JMenu和JMenuItem自行设计菜单栏时呈现奇怪的效果

java - GWT - 从 FormPanel 上传文件后返回对象吗?

java - 更改字体颜色运行时 Android

java - 有没有办法在拖放中达到下降时刻?

java - 如何在 Jframe Swing 中将 JLabel 居中?