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

注:どうやらこれで問題は解決しませんでした。

試してみるべきことの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()、テキストフィールドのコンテンツを保存しますが、ペイン2を更新するためにuserInput使用します。finalInput

于 2010-08-23T13:56:00.783 に答える