Pra*_*and 6 java customization javafx custom-controls
我正在创建JavaFX 2.2程序,并且需要创建自定义UI控件(仅在顶部始终存在那些最小化/最大化/还原-关闭按钮)。为此,我需要创建自定义按钮,直到创建才简单。
我只需要用于最小化和最大化/还原按钮的真实代码(关闭按钮确实是个小孩子的游戏)。最小化按钮将应用程序还原到任务栏。好吧,最大化按钮将其最大化以适合用户的屏幕,并且在最大化时切换到恢复按钮。单击“还原”按钮后,该窗口将还原为其初始大小(1200x600)。
我试图stage.setSize(width, height);在恢复了我的FXML文件,但它不是不工作(stage被白标明的错误,而艺名阶段。)
我用
scene.setFill(Color.TRANSPARENT);
stage.initStyle(StageStyle.TRANSPARENT);
Run Code Online (Sandbox Code Playgroud)
将默认窗口设置为透明。
程序(主文件,不是控制器)是:
Parent root = FXMLLoader.load(getClass().getResource("fxmlfile.fxml"));
Scene scene = new Scene(root);
scene.setFill(Color.TRANSPARENT);
stage.initStyle(StageStyle.TRANSPARENT);
stage.setTitle("Nothing here");
stage.setScene(scene);
stage.show();
Run Code Online (Sandbox Code Playgroud)
具有关闭操作的控制器文件为:
@FXML
private void exitProgramAction(ActionEvent exitProgramEvent) {
System.out.println("Killing program...");
System.exit(0);
}
Run Code Online (Sandbox Code Playgroud)
要将舞台最小化到任务栏,请为最小化按钮设置一个类似于以下的操作:
btnMinimize.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent event) {
Stage stage = (Stage)((Button)event.getSource()).getScene().getWindow();
// is stage minimizable into task bar. (true | false)
stage.setIconified(true);
}
});
Run Code Online (Sandbox Code Playgroud)
我使用 JavaFX 8,因此我不知道它是否适用于 JavaFX 2.2