2013-12-21 3 views
0

Это может быть легко для вас. Но я застрял и не могу найти алгоритм для этого. Я хочу показать JTextField и изменить текст в JButton на «Скрыть», если это «Поиск». Если текст в JButton - это «Поиск», то должен появиться JTextBox и наоборот, если текст «Скрыть» делает JTextField невидимым и меняет текст на JButton на «Поиск» Вот как я это сделал:Переключение текста на JButton

private void switchBtnText(){ 
searchTxtField.setVisible(true); 
btnSearch.setText("Hide"); 

if(btnSearch.getText().equals("Hide")){ 
    btnSearch.setText("Search"); 
    searchTxtField.setVisible(false); 
} 
} 

Если я прокомментирую раздел if, он будет работать, чтобы показать JTextField. Моя проблема - вернуться к настройкам по умолчанию, который является JButton с «Поиск» в виде текста и невидимым JTextField. Затем метод вызывается в ActionEvent. Я сделал это раньше, на C#, поэтому я знаю, что я рядом. Спасибо заранее. Самый быстрый и лучший ответ будет одобрен и принят.

ответ

4

Это должно работать, хотя я его не тестировал.

//btn action 

private void toggleVisible(){ 
    String btnVal = btnSearch.getText(); 
    if(btnVal.equals("Search")){ 
     searchTxtField.setVisible(true); // or however you are showing search field 
     btnSearch.setText("Hide"); 
    }else{ 
     searchTxtField.setVisible(false); 
     btnSearch.setText("Search"); 
    } 
} 
+0

Я пытался точно так, как вы сказали, но он не работает. Спасибо за Ваш ответ. EDI: О, в actionEvent я использовал getActionCommand, чтобы проверить, была ли нажата кнопка «Поиск». Я изменил это на getSource(), и это сработало :) – Eskipo

+0

Посмотрите другой код – unekwu

2

Посмотрите на вашей последовательности выполнения ....

  • SetText на "Скрыть"
  • если текст равен "шкура", изменение текста в "Show"

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

  • Если текст равен «Скрыть», изменить текст на «Показать»
  • Else, текст изменения в «Скрыть»
Смежные вопросы