2016-03-22 9 views
0

ペインのスタイルを変更しようとしています。javafx:ペイン上で動的にスタイルを変更します。

私はそのような何かを行うことができます

pane.setStyle(""); 
しかし、このように
.togglebutton{ 
    -fx-background-color:red; 
} 

.togglebutton:selected{ 
    -fx-background-color:green; 
} 

トグルボタン

のようなものを作成することが可能だ場合、私は私のCSSコードは、CSSスタイルシートになりたいと私は思っていました、トグルボタンを選択するたびに、スタイルが自動的に変わります。

質問は、トグルボタンのように動作するパラメータを作成できるかどうかです。以下のような何か:

CSSスタイルシート

.mypane{ 
    //do something 
} 

.mypane:selected{ 
    // do something else 
} 

Javaコード

public void mousedragAction(MouseEvent event){ 
    mypane.isSelected(true); 
} 

public void mouseexit(MouseEvent event){ 
    mypane.isSelected(false); 
} 

は任意のヘルプ、または任意の他のソリューションのためにありがとうございました。

答えて

1

あなたが探している機能は既にhover pseudoclassで実装されています。ですから、単に一般的に

.myPane { 
    /* do something */ 
} 
.myPane:hover { 
    /* do something else */ 
} 

を行うことができ、それはこの場合には必要はありませんが、あなたは(selectedhoverのように動作します)任意のCSSのpseudoclassesを定義することができます。

PseudoClass moveOver = PseudoClass.getPseudoClass("mouse-over"); 
Pane myPane = new Pane(); 
myPane.getStyleClass().add("my-pane"); 
myPane.setOnMouseEntered(e -> myPane.pseudoClassStateChanged(mouseOver, true)); 
myPane.setOnMouseExited(e -> myPane.pseudoClassStateChanged(mouseOver, false)); 

をして、あなたは以下のCSSを使用することができます:ホバー機能を再現するために、たとえば、あなたが行うことができます

.my-pane { 
    -fx-background-color: white ; 
} 
.my-pane:mouse-over { 
    -fx-background-color: yellow ; 
} 

注意CSSでの疑似クラス名(:mouse-over)が渡された文字列にマッチしますgetPseudoClassメソッド(PseudoClass.getPseudoClass("mouse-over"))に変換し、CSS識別子として使用するのに有効な任意の文字列にすることができます。

+0

もう一つの 'PseudoClass'の例[ここ](https://gist.github.com/james-d/846eb9ff72bd66fdd955) –

+0

これはまさに私が探していたものです。どうもありがとうございました –

関連する問題