2013-12-21 34 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來查看按鈕「Search」是否被點擊。我改變了getSource()而不是它的工作:) – Eskipo

+0

讓看看你的其他代碼 – unekwu

2

你的執行順序看看....

  • 的setText爲 「隱藏」
  • 如果文本等於 「隱藏」,更改文本以 「顯示」

嘗試更改邏輯,以便先檢查文本,然後決定應該做些什麼...

  • 如果文本等於「隱藏」,更改文本以「顯示」
  • 否則,更改文本爲「隱藏」