When the mouse is moved over this widget, resize borders appear, and the widget can be resized:
When the mouse moves away from the widget, the resize borders disappear:
setLayout(new BorderLayout());
Scene scene = new Scene();
LayerWidget baseLayer = new LayerWidget(scene);
Widget widget = new Widget(scene);
widget.setBorder(BorderFactory.createLineBorder(1));
widget.setPreferredLocation(new Point(10, 20));
widget.setPreferredBounds(new Rectangle(30, 30));
widget.getActions().addAction(ActionFactory.createResizeAction());
widget.getActions().addAction(ActionFactory.createMoveAction());
WidgetAction hoverAction = ActionFactory.createHoverAction(new TwoStateHoverProvider() {
@Override
public void unsetHovering(Widget w) {
w.setBorder(BorderFactory.createLineBorder(1));
}
@Override
public void setHovering(Widget w) {
w.setBorder(BorderFactory.createResizeBorder(8, Color.BLACK, false));
}
});
widget.getActions().addAction(hoverAction);
scene.getActions().addAction(hoverAction);
baseLayer.addChild(widget);
scene.addChild(baseLayer);
add(scene.createView(), BorderLayout.CENTER);