Java setText () Ошибка - PullRequest
       0

Java setText () Ошибка

0 голосов
/ 09 марта 2012

Я не понимаю, почему я получаю ошибку во время выполнения, когда я пытаюсь .setText () к объекту JTextArea в моей программе. В моем основном классе GUI я установил событие, которое создает всплывающий объект JFrame, в этом JFrame есть кнопка, которая также настроена для выполнения JTextArea.setText (); в JTextArea в моем основном классе GUI с именем 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 Ответ

1 голос
/ 09 марта 2012

хорошо, вот вам проблема.Вы создали объект GUI в классе ServerLoginGUI.Но вы не инициализируете свой GUi объект ссылкой на вызывающий класс.Вот что вам нужно сделать, чтобы это исправить.К вашему классу ServerLoginGUI добавьте следующий конструктор:

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

Теперь ваш код должен работать нормально и не давать ошибку времени выполнения.То, что я предполагаю, является ошибкой нулевого указателя, хотя вы не указали.

PS: Пожалуйста, получите правильные соглашения Java.Переменные начинаются с буквы в нижнем регистре.:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...