武装した状態のボタンは、武装していない状態とは少し違った外観をしています。ほとんどのプログラムは、ボタンの武装状態と対話する必要はありません。
選択されていないものから選択されたトグルボタンを区別するための標準的な方法は、それを深スタイルの効果を与え、それが遠くに見えるようにそれを暗くすることで選択状態
をスタイリングするためのサンプルそれが押されたとき。ここでは、標準toggle button css for JavaFX 2.2です:
.toggle-button:selected {
-fx-background-color:
-fx-shadow-highlight-color,
linear-gradient(to bottom, derive(-fx-color,-90%) 0%, derive(-fx-color,-60%) 100%),
linear-gradient(to bottom, derive(-fx-color,-60%) 0%, derive(-fx-color,-35%) 50%, derive(-fx-color,-30%) 98%, derive(-fx-color,-50%) 100%),
linear-gradient(to right, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0) 10%, rgba(0,0,0,0) 90%, rgba(0,0,0,0.3) 100%);
-fx-background-insets: 0 0 -1 0, 0, 1, 1;
/* TODO: -fx-text-fill should be derived */
-fx-text-fill: -fx-light-text-color;
}
あなたが選択した状態の代替定義を提供defining your own stylesheetすることにより、このデフォルトの動作をオーバーライドすることができます。以下のサンプルでは、選択した状態の表示が標準よりはるかに微妙であることを確認します。
選択されていない
選択
関連するCSS:
/**
* file: colored-toggle.css
* Place in same directory as ColoredToggle.java.
* Have your build system copy this file to your build output directory.
**/
.root {
-fx-background-color: cornsilk;
-fx-padding: 10;
}
.toggle-button {
-fx-color: paleturquoise;
}
.toggle-button:selected {
-fx-background-color:
-fx-shadow-highlight-color,
linear-gradient(to bottom, derive(-fx-color,-22%) 0%, derive(-fx-color,-15%) 100%),
linear-gradient(to bottom, derive(-fx-color,-15%) 0%, derive(-fx-color,-10%) 50%, derive(-fx-color,-8%) 98%, derive(-fx-color,-12%) 100%);
}
.toggle-button:selected:focused {
-fx-background-color:
-fx-focus-color,
linear-gradient(to bottom, derive(-fx-color,-22%) 0%, derive(-fx-color,-15%) 100%),
linear-gradient(to bottom, derive(-fx-color,-15%) 0%, derive(-fx-color,-10%) 50%, derive(-fx-color,-8%) 98%, derive(-fx-color,-12%) 100%);
}
ソースファイル:このコマンドはまた、作品CSSスタイルシートから
import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;
public class ColoredToggle extends Application {
public static void main(String[] args) { Application.launch(ColoredToggle.class, args); }
@Override public void start(Stage stage) {
ToggleButton visibilityControl = new ToggleButton("Winterfell");
VBox layout = new VBox(10);
layout.setAlignment(Pos.CENTER);
layout.getChildren().setAll(visibilityControl);
layout.getStylesheets().add(getClass().getResource("colored-toggle.css").toExternalForm());
stage.setScene(new Scene(layout));
stage.show();
}
}
ToggleButtonを使用するように変更する必要があります。返信の遅れに対する私の謝罪。 – likejiujitsu
私のボタンをトグルボタンに変更して次のようにしましたが、ボタンの色を設定するとダークブルーのハローが削除されました。フォーカスを要求しても表示されませんでした。任意の提案が高く評価されました。 'String activeButtonStyle =" -fx-background-color:PaleTurquoise; "; b.setStyle(activeButtonStyle); b.requestFocus(); ' – likejiujitsu
' -fx-background:paleturquoise;の代わりに '-fx-base:paleturquoise;'を使用しました – jewelsea