0

私はこれに対して数日間頭を悩ませてきましたが、Googleの質問に対する簡単な答えを見つけることができません. たくさんの CSS がありますが、一般的な CSS ドメインから JavaFX CSS ドメインに何がクロスオーバーするのかはよくわかりません (クロスオーバーするものがあれば、実際に何かがクロスオーバーするかどうかはわかりません)。

機能的にボタンであるラベルがあります。CSS によって反映される 3 つの状態があります。

1: アイドル状態で、特別なことはありません。2: ホバリングこれは、テキストを「浮き上がらせて」表示したい場所です 3: 押された: 私はこれを理解することができました。

ホバーの場合、次の CSS があります。

.label:hovered{
    //What goes in here to make the text appear embossed (raised) when the cursor 
    //is hovering over it?
}

試してみました-fx-effect : innershadow(...)が、理想的な効果が得られません。

編集::少し明確にするために、これは私が行っていることです (#3 を参照)。CSSを試してみましたが、うまくいきませんでした。

したがって、コントロールの外観は次のようになります。

アイドル ホバリング ここに画像の説明を入力

4

1 に答える 1

0

効果を使用できます。これは、照明に関する Oracle チュートリアルLightingへのリンクです。

点灯

この効果は、Java 8 の CSS 経由では適用できません。コードまたは xml 経由で適用できます。

ノードのhover プロパティにリスナーを追加して、ノード効果を null に設定することで照明をオフにし、ノード効果を照明に設定することで照明をオンにすることができます。

JavaFX javadoc on Lightingにサンプル コードがあり、ここで再現しました。

Light.Distant light = new Light.Distant();
light.setAzimuth(-135.0);

Lighting lighting = new Lighting();
lighting.setLight(light);
lighting.setSurfaceScale(5.0);

Text text = new Text();
text.setText("JavaFX!");
text.setFill(Color.STEELBLUE);
text.setFont(Font.font(null, FontWeight.BOLD, 60));
text.setX(10.0);
text.setY(10.0);
text.setTextOrigin(VPos.TOP);
text.setEffect(lighting);

ドロップ シャドウも機能し、目的を達成する方法は他にもありますが、結果はわずかに異なります。

于 2014-07-22T17:23:15.990 に答える