我正在挖掘文档以查看是否有删除方法,我只是在谷歌时获取此链接 http://www.coderanch.com/t/580998/JavaFX/java/remove-node
有一个简单的删除选项 例如:.getChildren()。remove(object)
它似乎对我不起作用!
答案 0 :(得分:1)
您提供的代码可以与我合作。
使用 ALT + 添加圆圈单击,只需单击它们即可将其删除。
我使用 ALT 键添加圆圈的原因是因为在下面的代码中,圆圈的场景和都会处理鼠标点击。因此,代码必须知道事件的来源。当然,这只是一个例子。
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.input.MouseEvent;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.stage.Stage;
public class ChangeListenerSample extends Application {
public static void main(final String[] args) {
launch(args);
}
@Override
public void start(final Stage primaryStage) throws Exception {
final Group root = new Group();
primaryStage.setResizable(false);
final Scene scene = new Scene(root, 400,80);
primaryStage.setScene(scene);
scene.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() {
@Override public void handle(final MouseEvent event)
{
if (!event.isAltDown())
return;
final Circle circle = new Circle(event.getSceneX(), event.getSceneY(),30);
circle.setFill(Color.YELLOW);
root.getChildren().add(circle);
circle.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>() {
@Override public void handle(final MouseEvent arg0)
{
root.getChildren().remove(circle);
}
});
}
});
primaryStage.show();
}
}