我正在開發一個項目。我想添加一個工具欄到軟件中,所以我在面板中放了一些按鈕。但是,默認的按鈕樣式不符合我的需要。我希望該按鈕具有以下效果:自定義JButton風格
- 當鼠標懸停在按鈕上時,該按鈕應該看起來像JLabel。按鈕中的圖標看起來像面板上的圖像,即我們可以看到的是按鈕中的圖標,而其他東西是透明的。
- 當鼠標懸停在按鈕上時,會出現按鈕的邊框。它看起來像一個真正的按鈕。
示例:就像eclipse工具欄上的按鈕一樣。
我正在開發一個項目。我想添加一個工具欄到軟件中,所以我在面板中放了一些按鈕。但是,默認的按鈕樣式不符合我的需要。我希望該按鈕具有以下效果:自定義JButton風格
示例:就像eclipse工具欄上的按鈕一樣。
那麼,你想定製你的JButton渲染?首先,對於一個包羅萬象的解決方案,你可以看看現有的LnF,如Substance(顯然,它是一個非常強大的解決方案來滿足你的需求,但它可能會給你一些啓發)。
然後,如果你想自己解決,你必須重寫paintComponent方法。
對此,第一步是子類JButton
。
然後,在您的子類中,首先重新定義paintComponent(Graphics)
方法。
請注意,如果所有這一切都過於複雜,您還可以看看setBorderPainted(boolean)
方法。
擴展JButton,並:
爲什麼不用use a JToolbar而不是JPanel?
我明白了。我的問題的答案是setContentAreaFilled()方法。當鼠標懸停在按鈕上時,調用setContentAreaFilled(true)。否則,調用setContentAreaFilled(false)。這裏是一個相對代碼:link text
+1,OP說他想要一個工具欄。不要重新發明輪子並使用標準的工具欄組件。 – camickr 2010-12-06 16:17:45