小编典典

无法在另一个类别的挥杆组件中设置值

java

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


阅读 254

收藏
2020-11-26

共1个答案

小编典典

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

  1. UpdateText课堂上,将以下几行放在其中:

    MyFrame gui;
    

    public UpdateText(MyFrame in) {
    gui = in;
    }

  2. 在“ MyFrame”类中,将此行放在开头:

    UpdateText ut = new UpdateText(this);
    

现在,您可以通过先要使用的内容来引用MyFrame类中的所有内容。例如,假设您要更改文本区域的文本。代码如下:UpdateText``gui

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

编码愉快!:)

2020-11-26