我花了很长时间搜索如何向AnchorPane
添加位置(未声明的方式如此:setMethode(new AnchorPane());
)。
添加Layout (x,y)
,设置Pref(Width and Height)
等
我试过了,但它没有工作:
.someMethode(new AnchorPane(
.setLayoutX(12);
.setLayoutY(222);
.setPrefWidth(1026);
));
有人能帮助我吗?
答案 0 :(得分:0)
您可能正在引用的是双括号初始化(请参阅What is Double Brace initialization in Java?)。你需要这样写:
.someMethode(new AnchorPane() {{
setLayoutX(12);
setLayoutY(222);
setPrefWidth(1026);
}});
但是我认为这是一个不好的做法,因为你使用双括号初始化创建了一个新的匿名类。
使用变量
AnchorPane pane = new AnchorPane();
pane.setLayoutX(12);
pane.setLayoutY(222);
pane.setPrefWidth(1026);
...
<some expression>.someMethode(pane);
创建一个方法:
static AnchorPane createAnchorPane(double layoutX, double layoutY, double prefWidth) {
AnchorPane pane = new AnchorPane();
pane.setLayoutX(layoutX);
pane.setLayoutY(layoutY);
pane.setPrefWidth(prefWidth);
return pane;
}
....
<some expression>.someMethode(createAnchorPane(12, 22, 1026));
AnchorPane
s FXMLLoader
,它允许您从文件创建节点结构。以这种方式创建更大的节点结构可能更容易。这将是AnchorPane
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<AnchorPane prefWidth="1026" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" layoutX="12" layoutY="222" >
<!-- add something else here??? -->
</AnchorPane>