@Override publicvoidstart(Stage primaryStage)throws Exception { Pane pane = new Pane(); pane.setPrefSize(800, 300); Tile tile = new Tile("1"); pane.getChildren().add(tile); //创建按钮并为按钮设置事件监听 Button button = new Button("点击隐藏矩形框"); //此处使用了lambda表达式 button.setOnAction(e->{ tile.hide();//隐藏tile }); Scene scene = new Scene(pane); primaryStage.setScene(scene); primaryStage.show();
}
privatestaticclassTileextendsStackPane{ //定义一个文本 private Text text; Tile(String content) { //定义一个矩形 Rectangle rect = new Rectangle(80,80,null); //颜色 rect.setStroke(Color.AQUAMARINE); //宽度 rect.setStrokeWidth(4); //类型 rect.setStrokeType(StrokeType.INSIDE); //创建文本 text = new Text(content); //设置文本字体 text.setFont(Font.font(64)); //添加到当前布局面板 this.getChildren().addAll(rect, text); setPickOnBounds(true); } voidhide(){ text.setVisible(false); } voidshow(){ text.setVisible(true); } } }
如果想生成多个矩形,而且位置随机,可以使用Random类, 此类用于产生随机数。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
private Parent populateGrid(){ Pane pane = new Pane(); for (int i = 0; i < 10; i++) { TileView tile = new TileView(Integer.toString(i)); Random random = new Random(); int randomX = random.nextInt(1024/80); int randomY = random.nextInt(500/80);
//===定义一个垂直盒子容器,populateGrid方法返回的Pane添加进去 VBox vBox = new VBox(); vBox.setPrefSize(1000, 500); //populateGrid函数将会返回一个Pane,Pane存放多个随机的矩形 vBox.getChildren().add( populateGrid()); Scene scene = new Scene(vBox); primaryStage.setScene(scene); primaryStage.show(); } }