2012-04-18 40 views
0

我試圖創建一個JSlider對象,它的行看起來像一個圓弧,有最小數量的刻度標記(雖然有些可能沒有值),滑塊指示器是一個簡單的線條從弧的中心繪製到當前選定的刻度線。它看起來像我可能不得不擴展BasicSliderUI並重寫各種繪畫方法。有沒有這樣的例子,或者我從頭開始創建這個對象?具有撥號外觀的Java滑塊

+1

使用鼠標在GUI上進行直線拖動或向上/向下拖動是一種自然的運動。但是'徑向運動'不那麼自然,而且很難做到。爲了您的用戶,請放棄這個想法。 – 2012-04-18 05:22:32

+0

您可能還會看[標籤:jfreechart]撥號圖,在[這裏]提到(http://stackoverflow.com/q/6799536/230513)。 – trashgod 2012-04-18 05:36:20

+0

不幸的是,我不得不模仿現有的用戶界面,並且由於某種原因,原始設計師選擇了這些刻度盤。我同意這是一個糟糕的用戶界面,但這是我所堅持的。雖然這是一個觸摸屏界面,但線路可能不像您想象的那麼大。 – Tony 2012-04-23 05:58:27

回答

2

example說明如何覆蓋BasicSliderUIpaintTrack()方法。看起來你可以畫一個Arc2D來獲得你想要的效果。

+0

有關呈現'Arc2D'的更多信息,請參見[此處](http://stackoverflow.com/a/7343420/230513)。 – trashgod 2012-04-18 06:38:48

+0

使用滑塊的唯一問題是它看起來像標籤總是繪製在軌道下方。我實際上需要把他們畫在線上。對於重寫的數量來說,擁有我自己的組件可能會更容易。這只是我需要setSnapToTicks(true)的行爲。這就是爲什麼我想從滑塊開始。我已經找到了漸變塗料的例子,這是我一直在我的原型中使用。 – Tony 2012-04-23 05:59:38