javafx-2 - 如何限制项目的可见性?

标签 javafx-2 visibility pane

假设我们有一个 AnchorPane,它有子 Pane,并且我们有 Button,例如。
我希望此 Button 仅显示在此 Pane 内。
换句话说,如果它不完全在 Pane 内,它就会被 Pane 边缘切割。现在,即使 Button 位于 Pane 矩形之外,它仍然可见。

最佳答案

这就是clip节点的创建。

示例:

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Rectangle;
import javafx.stage.Stage;


public class ClipTest extends Application {

  public static void main(String[] args) {
    launch(args);
  }

  @Override
  public void start(Stage primaryStage) throws Exception {

    Group root = new Group();

    StackPane pane = new StackPane();

    pane.setMaxWidth(100);
    pane.setMaxHeight(100);
    pane.setLayoutX(50);
    pane.setLayoutY(50);


    Rectangle rect = new Rectangle(100, 100);

    rect.setFill(null);
    rect.setStroke(Color.RED);

    Rectangle rect2 = new Rectangle(150, 150);

    rect2.setFill(Color.BLUE);

    pane.getChildren().addAll(rect2, rect);

    root.getChildren().add(pane);


//    Rectangle clip = new Rectangle(100, 100);
//    clip.setLayoutX(25);
//    clip.setLayoutY(25);
//    pane.setClip(clip);

    Scene scene = new Scene(root, 250, 250);

    primaryStage.setScene(scene);
    primaryStage.show();
  }
}

这会产生:

without clip

取消注释有关剪辑的行会产生:

with clip

关于javafx-2 - 如何限制项目的可见性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15920680/

相关文章:

Java 保护访问不起作用

jquery - 检查所有子元素是否都被隐藏

java - 如果 javafx 中节点超出其边界,是否可以自动调整 Pane 大小

来自 Javascript 的 WebView 回调

javafx - 如何在初始化期间从 Controller 获取阶段?

java - 如何使 JavaFX 2.0 中的类成为可用的节点?

javascript - Google map - 更改图 block 叠加层的 Pane 顺序?

java - 获取要在 Java FX 中的 anchor Pane 内显示的子节点?

javascript - D3一次调用绘制不同的SVG形状,没有可见性

sql-server - SQL Server Management Studio Pane 设置,始终显示图表 Pane 、条件 Pane 和 SQL Pane