簡體   English   中英

JLabel與單獨的文本和圖標背景顏色

[英]JLabel with separate text and icon background colours

我有一個帶有文本和圖標的簡單Jlabel元素

替代文字

設置背景會更改完整標簽顏色。

我希望能夠只在標簽的文本部分渲染背景顏色,即 - 為圖標和文本分別設置背景/前景。 選擇/取消選擇標簽將翻轉圖標和文本后面的顏色。 這可以通過擴展JLabel來實現,如果是這樣,我應該尋找哪些方法進行自定義?

替代文字

我的另一個想法是創建一個帶有兩個單獨標簽元素的面板,一個帶有圖標,另一個帶有文本。 它似乎有點凌亂,在我開始之前,我想知道是否有更智能的方法來實現這一點與Swing。

我喜歡你正在做的風格,但看起來你正在重新實現JToggleButton。

這是一個切換按鈕示例,左側被選中,右側未被選中:

alt text http://downloads.padlocksoftware.net/toggle.png

它沒有文本的華麗背景,但它是一個不需要您實現自己的組件的解決方案。

對齊設置為:

jToggleButton2.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
jToggleButton2.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);

我假設您使用的圖標具有透明背景? 如果是這樣,您可以使用具有匹配背景顏色的圖標。 這樣做應該允許你在整個標簽上設置setBackground(),但只能在文本上看到它。

JButton支持圖像和文本的不同對齊選項。 在大多數情況下,圖像或文本都不會填充按鈕的整個寬度或高度。 所以IMO讓它在一個按鈕上發生是不現實的,除非你想要覆蓋按鈕的繪畫。

您的另一個想法是一個更簡單的解決方案。 在那里你可以使用BorderLayoutMigLayout來實現你的目標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM