Java setText()错误

时间:2012-03-09 07:34:15

标签: java swing

当我尝试将.setText()添加到程序中的JTextArea对象时,我不明白为什么会出现运行时错误。在我的主GUI类中,我设置了一个创建弹出JFrame对象的事件,这个JFrame中有一个按钮,它也设置了JTextArea.setText();到我的主GUI类中的JTextArea,名为MainOut。

public class GUI extends JFrame implements ActionListener {



JTextArea MainOut       =       new JTextArea(20,50);


public void actionPerformed(ActionEvent e) {


        if (e.getSource() == ExitVar){
            System.exit(0);
        }

        else if (e.getSource() == ServerLoginVar) { //This is my event that creates a 
                                                            //new JFrame popup
            new ServerLoginGUI(this);   
        } 

//-------------------------------------------------------------------
public class ServerLoginGUI extends JFrame implements ActionListener {

    JTextField ServerIP             = new JTextField(15);
    JPasswordField ServerPassword       = new JPasswordField(15);
    JPanel ServerLoginPanel         = new JPanel();
    JButton LoginButton         = new JButton("Login");
    JTextArea Area;
    JLabel ServerIPLabel            = new JLabel("Server Address:");
    JLabel ServerPasswordLabel      = new JLabel("Password      :");
    GUI GUi;
   public void actionPerformed(ActionEvent e) {

        if (e.getSource() == LoginButton){
            if (ServerIP.getText().isEmpty() ||  ServerPassword.getText().isEmpty()){
                } //do nothing

            else {
                new ServerAccess(this);

// this is the .setText() that will generate a error

                GUi.SiteNameField.setText("Test from the ServerLogin event!");

                dispose();}
                    }
        }

}

1 个答案:

答案 0 :(得分:1)

好的,这是你的问题。您已在GUI类中创建了ServerLoginGUI的对象。但是,您没有使用调用类初始化GUi对象。以下是解决此问题的方法。在ServerLoginGUI类中添加以下构造函数:

public ServerLoginGUI(GUI gui)
{
  this.GUi = gui;
}

现在您的代码应该可以正常运行并且不会出现运行时错误。我假设是一个nullpointer错误,虽然你没有指定。

PS:请正确使用Java约定。变量以小写字母开头。 :)