bla*_*ter 2 events javafx button pane
我正在使用java8中的javafx开发一个项目.我集中了一个奇怪的情况:一个面板(类javafx.scene.layout.Pane)包含一个按钮(javafx.scene.control.Button)和另一个窗格.我希望鼠标点击的事件可以冒泡到父级.但是,只有在我点击窗格时才会出现这种情况,而单击按钮时则不会发生这种情况.下面是具有此行为的一个非常简单的示例的代码.有没有人有解决这个问题的建议?我知道我可以根据窗格创建自己的按钮..但这只是一个讨厌的解决方法.干杯
package application;
import javafx.animation.TranslateTransition;
import javafx.application.Application;
import javafx.event.Event;
import javafx.event.EventHandler;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.Pane;
import javafx.util.Duration;
public class Main extends Application {
double curScale;
@Override
public void start(Stage primaryStage) {
try {
BorderPane root = new BorderPane();
Scene scene = new Scene(root,400,400);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
Button btn = new Button("test");
btn.setLayoutX(50);
Pane p2 = new Pane();
p2.setPrefSize(20,20);
p2.setStyle("-fx-background-color: #440000");
Pane p = new Pane();
p.getChildren().add(btn);
p.getChildren().add(p2);
root.setTop(p);
p.setOnMouseClicked(new EventHandler<Event>() {
@Override
public void handle(Event event) {
System.out.println("event source " + event.getSource() + " target : " + event.getTarget());
}
});
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5133 次 |
最近记录: |