【发布时间】:2021-03-15 10:31:27
【问题描述】:
因此,在示例代码中,我有两个窗格(现在为 A 和 B),其中 A 窗格位于 B 上方,我的问题是,如果 A 窗格的边界与 B 窗格的边界相交,A 窗格会阻止 B 窗格阻止我进行交互有了它的孩子,我希望我的示例代码可以更好地解释我想要的。
所以我想要实现的是能够与Rectangle globalPaneR 与窗格的当前边界进行交互。
package stackoverflow;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;
public class StcakOverFlow extends Application
{
public static final Pane uiPane = new Pane();
public static final Pane global_pane = new Pane();
private Pane localPane = new Pane(global_pane, uiPane);
@Override
public void init()
{
Rectangle leftTopR = new Rectangle(25, 25, 50, 50);
Rectangle rightBottomR = new Rectangle(700, 700, 50, 50);
Rectangle globalPaneR = new Rectangle(600, 600, 50, 50);
leftTopR.setFill(Color.RED);
rightBottomR.setFill(Color.YELLOW);
globalPaneR.setFill(Color.BLUE);
globalPaneR.setOnMouseClicked(e -> globalPaneR.setFill(Color.LIME));
uiPane.getChildren().addAll(leftTopR, rightBottomR);
global_pane.getChildren().add(globalPaneR);
}
@Override
public void start(Stage stage)
{
Scene scene = new Scene(localPane);
stage.setScene(scene);
stage.setTitle("StackOverFlow");
stage.show();
}
public static void main(String[] args)
{
launch(args);
}
}
【问题讨论】:
-
在顶部(z 顺序)级别使用窗格的 pickOnBounds .. 将其设置为 false 将使事件通过(如果没有由其任何子级处理)。几个不相关的 cmets:a)不要对任何东西使用静态范围 b)在公开显示代码时坚持 java 命名约定(你几乎在那里,除了下划线:)
-
谢谢,我会试试的!
-
Group会比Pane更适合吗?
标签: java javafx interaction pane