2017-06-04 5 views
1

私はムードジャーナルアプリで作業していますが、現時点では、ユーザーの気分を1から5の尺度で評価して、下の画像を参照してください。画像JavaFXのいずれか1つしか選択できないボタン

私はこれを、それぞれの絵文字イメージを背景として水平に配置された5つの小さなボタンに置​​き換えたいと思います。私はすでに使用したい画像を選択していましたが、通常のFXボタンやImageViewを実装しましたが、ボタンをクリックするだけで何らかのアクションが行われるように見えます。むしろ、ラジオボタンのように一度に1つしか選択できないようにしたいと思っています。どうすればこれを達成できますか?

enter image description here

+0

一つだけが選択されていることを示すことになる方法は?例えば、ボタンの背景色は異なるでしょうか? – GOXR3PLUS

+0

良い点、私はそれを言及すべきでした。どのボタンが最後にクリックされたかを表示するために、ボタンの周りに薄い輪郭があると思っていましたか? –

答えて

1

提案1:DOCから

enter image description here

あなたはControlsFX SegmentedButtonを(あなたがimojiを兼ね備えたボタンのグラフィックとして設定)を使用することができます:

SegmentedButtonはToggleButtonインスタンスのグループを個別のボタンではなく1つの集合ボタン(サブボタン付き)として表示するように強制する簡単なコントロールです。これは、より良い絵を明確にされています。このコントロールにはほとんどのAPIがあり

、あなたは基本的に通常通りToggleButtonインスタンスを作成します(これはSegmentedButton自体によって行われているように、ToggleGroupにそれらを入れて気にしないでください)これらのボタンをボタンリストの中に配置します。次のようにこれをコーディングするために長い手の方法がある:

SegmentedButton segmentedButton = new SegmentedButton(b1, b2, b3, b4); 

:これを行うのやや短い方法のような、可変引数コンストラクタにトグルボタンインスタンスを通過させることである

ToggleButton b1 = new ToggleButton("day"); 
ToggleButton b2 = new ToggleButton("week"); 
ToggleButton b3 = new ToggleButton("month"); 
ToggleButton b4 = new ToggleButton("year"); 

SegmentedButton segmentedButton = new SegmentedButton();  
segmentedButton.getButtons().addAll(b1, b2, b3, b4); 

提案2:

あなたはControlsFX Ratingを使用することができます。

ドクから

enter image description here

コントロールユーザーが評価を提供することを可能にします。このコントロールは、部分的な評価(つまり、整数ではなく、ユーザーがコントロール内でクリックした場所に依存する)をサポートし、ホバーの評価を更新します。このように見える評価コントロールを作成するには

は単純です:

final Rating rating = new Rating(); 

これはデフォルトの水平方向のレーティング・コントロールを作成します。垂直評価コントロールを作成するには、単にのような、向きを変更:

final Rating rating = new Rating(); 
rating.setOrientation(Orientation.VERTICAL); 

あなたはdocから読み続けることができます...


提言3:(なしサードライブラリは必要ありません)

ToolBarを5 Buttonとすると、それぞれ疑似クラス(selected)があり、そのうちの1つが押されるとPseudoclass(selected=false)を持っているので、ユーザーはどちらが選択されているかを見ることができます。

ですからに似たものにすることができます:あなたはそれを実装する場合は、この記事を読んでenter image description here

を - >http://fxexperience.com/2012/02/customized-segmented-toolbar-buttons/

+0

これはまさに私が探していたものです、ありがとう! –

+0

私はむしろクラスの代わりに擬似クラスを使用したいと思っています - これは彼らのために作られているようです... – glglgl

+0

@glgl Opsはい私が擬似クラスを意味したいと思っていた、私はそれを修正しています。 – GOXR3PLUS

関連する問題