2012-03-09 3 views
0

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

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();} 
        } 
     } 

} 
+0

Вы уверены, что получаете ошибки времени выполнения? похоже, у вас больше ошибок во время компиляции, а? – Juvanis

+0

Какое исключение выбрано? – aleroot

+2

И ошибка ...? –

ответ

1

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

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

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

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

+0

Humm на 100% правильном. Я внес изменения, и теперь он работает отлично. Я всегда думал, что если код читается слева направо, что вы проходите в своем объекте и заявляете, что ваш переданный объект object = ваша ссылочная переменная loc.such как: public getter (obj b) { – Jhubbert

+0

Humm, вы на 100% правильны. Я внес изменения, и теперь он работает отлично. Я всегда думал, что если код читается слева направо, что вы проходите в своем объекте и указываете, что ваш переданный объект object = ваша ссылочная переменная locate. Моя логика в этом случае обратная ко мне, похоже, что вы назначаете растровое изображение локального объекта объекту класса? Ну, я думаю, я должен ошибаться, поэтому спасибо. – Jhubbert

+0

отлично! Пожалуйста, примите ответ, если он сработал для вас! Благодаря! – Shaunak

Смежные вопросы