2011-08-17 50 views
2

有人可以給我看代碼,它將設置一個JSlider,除了拇指,它是一個圓圈嗎?具體來說,不是那個指向當前位置的小三角形,而是一個寬度爲100的藍色圓圈;Circle JSlider - Java程序

+0

與往常一樣的問題:爲什麼?標準 - 外觀和感覺 - 組件標準化的原因... – kleopatra

+0

因爲我正在自定義滑塊。雖然它是Java代碼,但最終的Java應用程序的外觀並不一定總是看起來像java。 – CodeGuy

+0

表示同意,不一定是java-whatever-that-means--但它必須看起來一致並且功能和可用。取得正確的做法並不是微不足道的,大公司爲用戶研究付出了巨大的代價。認爲你或我可能會得到類似的結果......有點過於樂觀;-) – kleopatra

回答

1

假設您使用Metal L & F,您可以擴展javax.swing.plaf.metal.MetalSliderUI並覆蓋horizThumbIconvertThumbIcon以成爲您的圈子。然後設置這個UI是UI你想使用slider.setUI()

看這這裏的答案執行了一個JComboBox,How can I change the arrow style in a JComboBox改變你的倒戈。

+0

+1更改'MetalSliderUI'中的'Icon'似乎很方便。另請參閱這些[示例](http://stackoverflow.com/questions/6992633/painting-the-slider-icon-of-jslider/6996263)。 – trashgod

+0

-1用於在單個組件實例上設置ui委託。這將無法在任何updateUI中存在,也不能在任何應用程序中安全地保持一致。 – kleopatra