前言:
一提到Java的图形界面库,我们通常听到的都是Swing,或者更老一点的AWT,包括很多书上面介绍的也都是这两种。很多学校、培训班教学的也是这两种技术。但是其实这两种技术都已经过时很长时间了。Swing虽然学起来也不算很难,但是用它来写界面其实也很不好写。因为它的界面和代码没有做到分离,所以在编写的时候,代码中肯定充斥着大量坐标,修改极其不易。这方面做的比较好的就是微软的WPF,只能说谁用谁知道。
当然,虽然编写客户端图形程序是Java的弱项,但是Java并没有放弃这方面的努力。今天介绍的JavaFX就是Java在编写图形界面程序的最新技术。如果你准备使用Java编写图形界面程序,又没有历史包袱,那么强烈推荐使用JavaFX。
JavaFX 提供一下类别,均集成自 javafx.scene.layout.Pane
javafx.scene.layout.AnchorPane
javafx.scene.layout.BorderPane
javafx.scene.layout.FlowPane
javafx.scene.layout.GridPane
javafx.scene.layout.HBox
javafx.scene.layout.StackPane
javafx.scene.layout.TilePane
javafx.scene.layout.VBox
AnchorPane
AnchorPane 的用法和名字Anchor(锚点)的意思很接近。
用下列方法设置AnchorPane各区域与组件之间的距离。
//上方与组件的距离
setTopAnchor()
//上方与组件的距离
setBottomAnchor()
//左方与组件的距离
setLeftAnchor()
//右方与组件的距离
setRightAnchor()
下面以topAnchor,bottomAnchor,leftAnchor,rightAnchor表示方位距离。无论窗体如何变化,组件所定的相对位置不会变化。
如下图开发程序:
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setTitle("AnchorPane Demo");
//定义btn1
Button btn1 = new Button("Button01");
btn1.setPrefSize(100, 30);
//设置间隔
AnchorPane.setTopAnchor(btn1, 50.0);
AnchorPane.setLeftAnchor(btn1, 50.0);
//定义btn2
Button btn2 = new Button("Button02");
btn2.setPrefSize(100, 30);
//设置间隔
AnchorPane.setBottomAnchor(btn2, 50.0);
AnchorPane.setRightAnchor(btn2, 50.0);
//定义AnchorPane,添加node
AnchorPane anchorPane = new AnchorPane();
anchorPane.getChildren().addAll(btn1, btn2);
//定义scene
Scene scene = new Scene(anchorPane);
//设置主界面
primaryStage.setScene(scene);
primaryStage.setWidth(500);
primaryStage.setHeight(500);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}