我的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;
}
UpdateText ut = new UpdateText(this);
现在,您可以通过使用
MyFrame
更改要更改的内容来引用UpdateText
类中gui
类中的所有内容。例如,假设您要更改文本区域的文本。代码如下:gui.textArea.setText("Works!");
编码愉快! :)