不能在另一个类的swing组件中设置值

我的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中出现。 请帮忙

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

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

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

     UpdateText ut = new UpdateText(this); 

现在,您可以在UpdateText类中引用MyFrame类中的所有内容,然后MyFrame使用gui更改要更改的内容。 例如,假设您要更改textarea的文本。 代码如下:

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

快乐的编码! 🙂