我的UI有这个 class

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中。请帮忙

最佳答案

首先,除非您想要其他行为,否则不要覆盖setText()方法。其次,您无需扩展任何内容。您所要做的就是按照这些简单的步骤进行操作,就可以开始工作了!

  • UpdateText类中,将以下几行放在其中:
    MyFrame gui;
    
    public UpdateText(MyFrame in) {
        gui = in;
    }
    
  • 在'MyFrame`类中,将此行放在开头:
    UpdateText ut = new UpdateText(this);
    

  • 现在,您可以通过使用MyFrame更改要更改的内容来引用UpdateText类中gui类中的所有内容。例如,假设您要更改文本区域的文本。代码如下:
    gui.textArea.setText("Works!");
    

    编码愉快! :)

    07-24 15:11