我有一個非常簡單的問題。我搜索了javafx event頁面。可能是我忽略了一些細節。無論如何,如果你看我的代碼,一切工作正常。羣組鼠標事件未啓動Javafx
但是,如果我在一個組中包裝佈局並將其添加到場景而不是直接添加布局,佈局和contentPane似乎都停止檢測鼠標事件。事件該組,g,沒有得到鼠標事件。
這樣的行爲是否正常?爲什麼?
任何有關這個問題的幫助將不勝感激。
package mouseeventtest;
import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.Pane;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;
public class MouseEventTest extends Application {
BorderPane layout;
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("Test Mouse Event");
layout = new BorderPane();
Pane contentPane = new StackPane();
layout.setCenter(contentPane);
layout.setOnMousePressed(e ->{ System.out.println("layout.setOnMousePressed..."); });
contentPane.setOnMousePressed(e -> { System.out.println("contentPane.setOnMousePressed..."); });
//Group g = new Group(layout);
//g.setOnMousePressed(e -> { System.out.println("g.setOnMousePressed ..."); });
//Scene scene = new Scene(g, 800, 800, Color.WHITE);
Scene scene = new Scene(layout, 800, 800, Color.WHITE);
scene.setOnMousePressed(e -> { System.out.println("scene.setOnMousePressed..."); });
primaryStage.setScene(scene);
primaryStage.show();
primaryStage.show();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
}
它可能是一個錯誤? – Tania