我需要一個按鈕,當按下這個按鈕時,將啓用所有其他按鈕,並將標籤的名稱從「Off」更改爲「On」,再次按下時,禁用所有按鈕並將開關置於「off」再次回來,就像一個開/關開關。事情是,我可以「打開」,但我無法將其關閉。如何在java上打開/關閉按鈕?
回答
如果擺動,那麼也許你會想要把你想要控制的按鈕放入一個數組或ArrayList<AbstractButton>
。這樣,控制按鈕的ActionListener可以簡單地遍歷數組或帶有for循環的集合,調用按鈕上的setEnabled(true)
或false。考慮使控制按鈕成爲JCheckBox或JToggleButton。
請注意,如果您使用JToggleButton,則向其添加ItemListener。如果你這樣做,就不需要使用布爾值。只需檢查傳遞給ItemListener的itemStateChanged方法的ItemEvent的狀態。如果getStateChanged()
返回ItemEvent.SELECTED,則遍歷您的JButton集合啓用所有按鈕。如果它返回ItemEvent.DESELECTED,則做相反的操作。
另請注意,每拜倫霍金斯的評論:
你可能要考慮的是,當用戶切換的按鈕
ItemListener
將接收事件當按鈕被編程切換,而還。ActionListener
只會觸發來自人類用戶的輸入。我經常有錯誤,因爲我選錯了。
也考慮'JToggelButton'的ButtonGroup,見[這裏](http://stackoverflow.com/a/6036048/230513)。 – trashgod 2013-02-14 11:16:20
您可能想要考慮當按鈕被_programmatically_切換時以及_user_切換按鈕時'ItemListener'將接收事件。 ActionListener只會觸發來自人類用戶的輸入。我經常有錯誤,因爲我選錯了。 – 2013-02-14 21:11:23
@ByronHawkins:非常好的一點,謝謝!如果你不介意的話,我會在答案中加上這個。 – 2013-02-14 21:35:17
如果你的按鈕被按下,也不會重新彈出,機會是你已經在JToggleButton
覆蓋的方法,而無需調用super
的版本的它。而不是覆蓋方法,創建一個ActionListener
並使用addActionListener()
附加到按鈕。當您的聽衆收到按鈕操作的通知時,請檢查切換按鈕是否處於啓動或關閉狀態,並相應地檢查其他按鈕上的setEnabled()
。
嘗試使用這個簡單的代碼,使用變量作爲標誌
public int status = 0; //0 = on, 1=off
public void button_clicked()
{
//on button clicked
if(status == 0)
{
//logic here
status = 1;
buttonname.setText("Off");
}
//off button clicked
else if(status == 1)
{
//logic here
status = 0;
buttonname.setText("On");
}
}
你需要一個布爾值來表示按鈕的狀態。
換句話說,當您的按鈕關閉(您的布爾變量爲false)時,您的onClick監聽器將調用方法「turnButtonOn()」或其他類型的方法。
如果你的布爾變量是真實的,那麼你會調用一個方法turnButtonOff()
public void onClick() {
if(buttonOn){
turnOff();
}
else {
turnOn();
}
buttonOn = !buttonOn;
}
- 1. 在Javascript中打開/關閉按鈕
- 2. 關閉打開使用jQuery選項卡上的關閉按鈕
- 3. 打開/關閉按鈕點擊jQuery
- 4. 打開/關閉音樂按鈕Console.Beep
- 5. 打開關閉按鈕切換
- 6. 如何在打開頁面時關閉按鈕
- 7. 在同一個按鈕上打開和關閉mmenu
- 8. 如何在浮動圖層關閉按鈕上打開新網站
- 9. 如何隱藏在警報視圖的關閉按鈕和關閉動作,只顯示「打開應用」按鈕
- 10. 如何爲Chrome擴展打開/關閉按鈕/圖標?
- 11. 如何打開和關閉正確的答案按鈕?
- 12. 如何使用按鈕關閉框架並打開新框架?
- 13. 如何使用切換按鈕打開和關閉gprs?
- 14. 如何打開和關閉禁用按鈕
- 15. 如何確定dijit下拉按鈕的打開/關閉狀態?
- 16. 如何以編程方式打開/關閉按鈕?
- 17. Java開關按鈕
- 18. jCarouselLite開啓/關閉按鈕
- 19. 打開隱藏字幕按鈕關閉iOS上
- 20. 如何關閉打開的窗體並在按鈕上點擊打開新窗體
- 21. 打開彈出窗口,沒有任何關閉按鈕
- 22. Java TelnetClient InputStream在打開後關閉
- 23. android flash在相機運行時使用按鈕打開/關閉
- 24. 如何關閉UIButton按鈕上的按鈕陰影?
- 25. 如何在此jQuery代碼中打開和關閉div的一個按鈕?
- 26. 如何關閉程序,如果已在Java中打開
- 27. 如何讓按鈕打開
- 28. Javascript:打開/關閉開關
- 29. 如何按下CTabView關閉按鈕?
- 30. Javascript:「分享按鈕」在兩個評論框(jsfiddle)上打開和關閉?
這是一個Swing GUI? Android的? AWT?一個網絡程序?什麼?如果您試圖實現這一點,並且您的代碼不起作用,您可以考慮向我們展示您的代碼嘗試。 – 2013-02-14 02:47:07
我敢打賭,這是Swing,因爲他/她用'JButton'標記了這個問題。 – 2013-02-14 02:48:26
是的,這是擺動,對於延遲抱歉,我的互聯網糟透了!我會試試這個!謝謝!! – 2013-02-14 02:53:35