2014-03-27 32 views
1

删除对象,我挖的文件,看看是否有一个remove方法,我只是得到该链接,每当我谷歌 http://www.coderanch.com/t/580998/JavaFX/java/remove-node从现场的JavaFX

有一个简单的删除选项 如:.getChildren()删除(物体)

它似乎不适合我!

+0

能否请您提供更多信息?例如源代码 – GGrec

+0

@GGrec,以下是代码: http://stackoverflow.com/questions/22677110/putting-an-object-on-a-stage-when-mouse-clicked/22678406#22678406 – Pgram

回答

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(); 
    } 

}