我用的是Scene Builder进行界面设计,然后自动生成FXML文件,再用Controller进行后端控制
##不同界面切换
可以通过生成一个Stage来创建一个新的窗口,也可以通过创建一个新的Scene来替换原有窗口的场景。
Stage stage = new Stage();
Parent root = FXMLLoader.load(getClass().getResource("SaveSuccess.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
##不同界面的交互
fxml文件对应的控制器的获取,注意获取到的只是类,而非对象。
EditController editcontroller = fxmlloader.getController();
fxml文件已形成的场景上节点(Node)的获取
Button findbutton = (Button) scene.lookup("#findbutton");
已知节点的窗口的获取,获取后可以在另一个控制器中对原有窗口的关闭,场景替换等操作
Stage stage = (Stage) button.getScene().getWindow();
stage.close();
同时,对于一些信息的交流我是直接用Static String或Static Number进行存储,便于交流
也可以采用绑定来进行信息交流
double textheight = textarea.heightProperty().get() / anchorPane.heightProperty().get();
textarea.prefHeightProperty().bind(anchorPane.heightProperty().multiply(textheight));
不同窗口的优先级设置
stage.initModality(Modality.APPLICATION_MODAL);
//设置该窗口为最高优先级,也可以通过窗口互相绑定设置各个窗口的关系
##关于文字的设置
可以用font的设置
textarea.setFont(new Font(14.0));
也可以用lambda表达式进行设置
textarea.setStyle("-fx-text-fill:#e7ea0b00");
更多的学习可以点这个网站!
一个适合新手的Java FX学习网站!