プログラムにボタンまたはクリック可能な ImageView が必要です。クリックすると、境界線がイメージビューの形状に表示されるようにしたいと思います。この画像には背景がありませんでしたが、境界線の形状を指定する方法が見つかりません。例えば:
この画像には背景がなく、境界線は画像の周りにのみある必要があるため、四角形や円はありません。これは可能ですか?
プログラムにボタンまたはクリック可能な ImageView が必要です。クリックすると、境界線がイメージビューの形状に表示されるようにしたいと思います。この画像には背景がありませんでしたが、境界線の形状を指定する方法が見つかりません。例えば:
この画像には背景がなく、境界線は画像の周りにのみある必要があるため、四角形や円はありません。これは可能ですか?
効果を使用DropShadow
して境界線を表示することをお勧めします。
@Override
public void start( final Stage primaryStage )
{
DropShadow ds = new DropShadow( 20, Color.AQUA );
ImageView imageView = new ImageView( "http://vignette3.wikia.nocookie.net/forgeofempires/images/b/b8/Castel_del_Monte.png" );
imageView.setOnMouseClicked( ( MouseEvent event ) ->
{
imageView.requestFocus();
} );
imageView.focusedProperty().addListener(( ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue ) ->
{
if ( newValue )
{
imageView.setEffect( ds );
}
else
{
imageView.setEffect( null );
}
});
final Scene scene = new Scene(
new VBox( imageView,
new Button( "When you focus on me, the imageview looses its shadow effect" ) ),
500, 200 );
primaryStage.setScene( scene );
primaryStage.show();
}
imageview がクリックされると、それにフォーカスをリクエストします。これにより、focusProperty
変更リスナーがトリガーされ、エフェクトが設定されます。imageview がフォーカスを失うと (TAB を押すか、下のボタンをクリックして)、エフェクトがクリアされます。