2

我有 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);
    }
} 

窗格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);
}   

这是我的主要课程:

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课堂。

4

2 回答 2

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
}  

您的面板有可能没有重新粉刷。

于 2010-08-23T13:54:22.043 回答
0

可能是错字,但是-actionPerformed()您将文本字段的内容存储在其中userInput但用于finalInput更新pane2。

于 2010-08-23T13:56:00.783 回答