2012-04-18 7 views
0

円が弧のように見えるJSliderオブジェクトを作成しようとしましたが、最小の目盛りがありますが(値によっては値がないものもあります)、スライダインジケータは単純な線です弧の中心から現在選択されている目盛りに描画されます。 BasicSliderUIを拡張し、さまざまなペイントメソッドをオーバーライドする必要があるようです。既にこのようなものの例がありますか、またはこのオブジェクトを最初から作成していますか?ダイヤルルックアンドフィールのJavaスライダー

+1

マウスを使用してGUIを横切ってまっすぐドラッグすることは自然な動きです。しかし、「ラジアル・ムーブメント」は自然ではなく、難しいものです。あなたのユーザーのために、このアイデアを削除してください。 –

+0

[tag:jfreechart]ダイヤルプロットを参照してください。[ここ](http://stackoverflow.com/q/6799536/230513)。 – trashgod

+0

残念ながら私は既存のユーザーインターフェイスを模倣しなければならず、何らかの理由で元の設計者がこれらのダイヤルを選択しました。私はそれが悪いUIであることに同意するが、それは私が立ち往生しているものです。これはタッチスクリーンインターフェースなので、ラインはあなたが考えるように大きな問題ではないかもしれません。 – Tony

答えて

2

このexampleは、paintTrack()の方法を無効にする方法を示しています(BasicSliderUI)。あなたが望む効果を得るためにArc2Dを描くことができるようです。

+0

'Arc2D'のレンダリングに関する詳細はこちら[here](http://stackoverflow.com/a/7343420/230513)にあります。 – trashgod

+0

スライダを使用する唯一の問題は、ラベルが常にトラックの下に描画されるように見えることです。私は実際にそれらを線の上に描く必要があります。オーバーライドの量は、自分のコンポーネントを持つほうが簡単かもしれません。 setSnapToTicks(true)の動作が必要なことだけです。なぜ私はスライダーから始めたいと思ったのですか?私は既にグラデーションペイントの例を見つけていましたが、これが私のプロトタイプで使っていたものです。 – Tony