3

我的 UI 有这个类

public class MyFrame extends JFrame{
   JTextArea textArea;
  public MyFrame(){
   setSize(100,100);
   textArea = new JTextArea(50,50);
   Container content = getContentPane(); 
   content.add(textArea);
  }
 public static void main(String[] args){
          JFrame frame = new MyFrame();  
          frame.show();
          UpdateText u = new UpdateText();
          u.settext("Helloworld");
      }
}

我还有另一个类将设置 的文本textArea,在其中我扩展了 MyFrame 以访问另一个类中的 textArea。

public class UpdateText extends MyFrame{
    public void settext(String msg){
     textArea.setText(msg);
    }
}

然后我实例化 UpdateText 并调用函数 settext。但文本似乎没有出现在 GUI 中。

4

1 回答 1

2

首先,setText()除非您想要不同的行为,否则不要覆盖该方法。其次,你不必扩展任何东西。你所要做的就是按照这些简单的步骤,你会被设置!

  1. UpdateText课堂上,将这些行放在其中的某个位置:

    MyFrame gui;
    
    public UpdateText(MyFrame in) {
        gui = in;
    }
    
  2. 在“MyFrame”类中,将此行放在开头:

    UpdateText ut = new UpdateText(this);
    

现在,您可以通过在要更改的内容前面加上来引用MyFrame类中的所有内容。例如,假设您想更改 textarea 的文本。代码如下:UpdateTextgui

gui.textArea.setText("Works!");

快乐编码!:)

于 2012-04-09T18:05:26.207 回答