不能在另一个类的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()
方法。 其次,你不需要扩展任何东西。 所有你需要做的就是按照这些简单的步骤,你将被设置!
-
在
UpdateText
类中,将这些行放在其中的某个位置:MyFrame gui; public UpdateText(MyFrame in) { gui = in; }
-
在’MyFrame`类中,将此行放在开头:
UpdateText ut = new UpdateText(this);
现在,您可以在UpdateText
类中引用MyFrame
类中的所有内容,然后MyFrame
使用gui
更改要更改的内容。 例如,假设您要更改textarea的文本。 代码如下:
gui.textArea.setText("Works!");
快乐的编码! 🙂