javafx.scene.control.ColorPicker
を無効にしようとしましたが、私のUIでそれを暗くしません。私はそれを有効にして(見た目を有効にして)見たいと思っていますが、コマンドには反応せず、マウスのクリックで色の表を表示しません(実際には無効)。この動作は、システムの状態(つまり、カラーピッカーが正常に動作することがある)に応じて、通常の動作と互換性があります。以下のように、JavaFX ColorPickerを淡色表示で無効にするにはどうすればいいですか?
は、私はいくつかのオプションを試してみたが、どれも動作するように見えません:
1. setEditable(boolean)
:
myColorPicker.setEditable(false);
これはうまく動作しませんが、カラーピッカーは、編集可能なまま。
2.一緒にsetDisable(boolean)
とsetOpacity(double)
:
myColorPicker.setDisable(true);
myColorPicker.setOpacity(1.0f);
appearenceをこれは、カラーピッカーが実際に編集不可になり、そして得られたカラーピッカーが少し薄暗くだけsetDisable(true)
を使用するよりも表示されますが、まだありません有効なカラーピッカーの上記のアプローチは、私のコンソールに対応するメッセージを印刷しますが、カラーピッカーは、まだカラーテーブルを示す(マウスクリックに反応し、
myColorPicker.setOnMouseClicked(new EventHandler <MouseEvent>() {
public void handle(MouseEvent event) {
System.out.println("Mouse clicked.");
}
});
myColorPicker.setOnMousePressed(new EventHandler <MouseEvent>() {
public void handle(MouseEvent event) {
System.out.println("Mouse pressed.");
}
});
myColorPicker.setOnMouseReleased(new EventHandler <MouseEvent>() {
public void handle(MouseEvent event) {
System.out.println("Mouse released.");
}
});
:空の実装とonMouseClick()
、onMousePressed()
とonMouseReleased()
をオーバーライド
3新しい色を選ぶことができます)。 setOnAction(EventHandler<ActionEvent>)
をオーバーライドしようとしましたが、同じ効果があります(ただし、カラーピッカーをクリックしたときにコンソールが表示されない点を除きます)。
ここで、それは私のFXMLの抜粋です。
<VBox fx:controller="mypackage.ElementConfigWidget"
xmlns:fx="http://javafx.com/fxml" fx:id="root" styleClass="elementConfigPane">
<HBox id="elementInfo">
(...)
<ColorPicker fx:id="elementColor" styleClass="elementColor" />
</HBox>
(...)
</VBox>
ここでは私のCSSの抜粋です:
.elementColor {
-fx-cursor: hand;
-fx-background-color: #fff;
-fx-focus-color: transparent;
-fx-faint-focus-color: transparent;
-fx-pref-width: 50.0;
}
私は実際に要素appearenceを維持し、無視することによって、私の問題を解決するためにsetEditable(boolean)
を期待入力アクション。私は何が欠けていますか?
ありがとうございます!
グレートにsetDisable(真)と不透明度に必要.AlsoいくつかのCSS でそれを達成するために管理! CSSのことがトリックでした。 :) –