[英]Rectangular Java Swing Radio buttons?
我想在 Java Swing 應用程序中創建一組按鈕,就像您在繪畫程序中使用典型的工具調色板一樣。 也就是一組小的方形按鈕,每個都包含一個圖標,只有一個被按下,當你按下另一個按鈕時,第一個被取消選擇。 我想了很多解決方案,但沒有一個看起來很簡單/優雅。
這聽起來像是 JRadioButton 的工作,但如果你在其中添加一個圖標,你仍然會得到一個小圓圈,這在空間上是相當低效的。 我想一個選擇是為 JRadioButton 找到替代的外觀或繪畫代碼。
另一種選擇可能是將 JButton 添加到 ButtonGroup,可能將 JToggleButton.ToggleButtonModel 設置為 model,但這並沒有達到預期的效果,因為標准 JButton 的繪制代碼在選擇時不會保持按下狀態。 可能可以修改 JButton 代碼來執行此操作。 就像使其繪畫“選中”的方式與“按下”一樣。
第三種選擇是使用普通的 JButton,並添加一個通用的鼠標偵聽器來保持它們被按下或不按下,並在按鈕之間傳達變化。
任何人都可以就實現目標的最佳方法提出建議嗎? 我錯過的一個簡單方法是最好的,但是關於這三個替代方案中哪一個最好的建議以及如何開始的指示也會很有用。
ButtonGroup
中的普通JToggleButton
怎么樣? 它不是抽象的,你可以用一個Icon
來實例化它,它在被選中時會保持郁悶。
請參閱 SwingSet2 演示:http://java.sun.com/products/plugin/1.4/demos/jfc/SwingSet2/SwingSet2.html
單擊工具欄上的第二個圖標(帶有復選框和單選按鈕的那個),然后選擇“單選按鈕”。 然后單擊右側面板上的“顯示選項”下的“繪制邊框”。
演示的源代碼在您的 JDK 安裝目錄下,例如在我的 PC 上它在 \jdk1.6.0_01\demo\jfc\SwingSet2\src 下
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.