2014-01-12 5 views
-1

Я создаю клиент хранилища для своих репозиториев сайтов, и мне нужно определить, когда пользователь вводит определенный идентификатор, чтобы определить, из какого репозитория URL его получить.Получить строку из JTextArea

Вот мой код:

JTextField repo = new JTextField(); 
    JButton submit = new JButton("Download!"); 
    String repod = repo.getText(); 
    final String repoid = repod; 
    submit.addActionListener(new ActionListener(){ 
     public void actionPerformed(ActionEvent e){ 
      if(repoid.equals("pb")){ 
       //this 
      }else if(repoid.equals("mb")){ 
       //this 
      }else if(repoid.equals("repo29-update")){ 
       //this 
      }else{ 
       System.out.println("Contacting SERVER..."); 
       System.out.println("Finding REPOID: "+repoid); 
       System.out.println("Not Found! Returning Error!"); 
       JLabel err = new JLabel("Invalid REPOID"); 
       JFrame a = new JFrame("Error"); 
       a.setSize(300,100); 
       a.setLocationRelativeTo(null); 
       a.setResizable(false); 
       a.setAlwaysOnTop(true); 
       a.add(err); 
       a.setVisible(true); 
      } 
     } 
    }); 

Когда я иду через этот сценарий, я всегда получаю возможность еще, почему?

Это не дубликат, я изменил значение == на .equals(), и он все еще не работает.

+1

Вы создаете 'JTextField' и примерно через наносекунду позже получаете содержимое ... так что' repod' и, таким образом, 'repoid' являются пустыми строками. –

+0

'String repod = repo.getText();' <- должен находиться в вашем 'actionPerformed'. И просто проверяйте «repod», не нужно «repiod» –

ответ

1

При сравнении строк вы должны использовать .equals().

if(repoid.equals("pb")){... 
+0

Хорошо, что все еще не работает, он не пишет ошибку, но я всегда получаю ответ инструкции else. – KMCD00

+0

Что такое 'repo.getText()' return? – Sionnach733

+0

Он возвращается с: 'JTextField repo = new JTextField();' И он не возвращает строку – KMCD00

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