Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JavaFX中组合菜单栏和窗口框架_Java_Javafx - Fatal编程技术网

在JavaFX中组合菜单栏和窗口框架

在JavaFX中组合菜单栏和窗口框架,java,javafx,Java,Javafx,我正在尝试创建一个与(自定义)窗口框架集成的(自定义)菜单栏。我试图实现的一个例子是VSCode的功能。 菜单栏与标题和窗口按钮显示在同一行上。注意定制的窗口框架(或)和菜单栏。窗口按钮(-)☐ X)保持Windows 10样式 我正在尝试使用JavaFX重新创建它。首先,我不知道这是自定义框架还是没有框架的自定义菜单栏。两者都会导致不同的答案,所以我只想创建一些类似于JavaFX中VSCode的东西 到目前为止,这就是我所拥有的。 我不想把窗框和菜单栏分开!它在我的具体项目中占用了太多宝贵

我正在尝试创建一个与(自定义)窗口框架集成的(自定义)菜单栏。我试图实现的一个例子是VSCode的功能。

菜单栏与标题和窗口按钮显示在同一行上。注意定制的窗口框架(或)和菜单栏。窗口按钮(-)☐ X)保持Windows 10样式

我正在尝试使用JavaFX重新创建它。首先,我不知道这是自定义框架还是没有框架的自定义菜单栏。两者都会导致不同的答案,所以我只想创建一些类似于JavaFX中VSCode的东西

到目前为止,这就是我所拥有的。

我不想把窗框和菜单栏分开!它在我的具体项目中占用了太多宝贵的空间。此外,我喜欢黑色主题,而不是默认的白色窗框

以某种方式编辑窗口框架以拥有一个自定义栏是很好的,但我认为在JavaFX中不容易做到这一点。相反,我想我会专注于制作一个带有无框窗口的自定义菜单栏。我可以用:
myStage.initStyle(StageStyle.UNDECORATED)创建一个无框架窗口
对于无框窗口,我松开了窗口移动和调整大小,以及窗口标题、图标和Windows 10窗口按钮有没有办法将这些功能实现到自定义菜单栏,或者使用JavaFX合并菜单栏和窗口框架?

编辑: 这就是我目前所拥有的。我取下菜单项,让窗户没有框架

@Override
public void start(Stage window) {
    window.initStyle(StageStyle.UNDECORATED);

    Menu fileMenu = new Menu("File");

    fileMenu.getItems().add(new MenuItem("New Project..."));
    fileMenu.getItems().add(new MenuItem("Open Project..."));
    fileMenu.getItems().add(new MenuItem("Exit"));

    MenuBar menuBar = new MenuBar();
    menuBar.getMenus().addAll(fileMenu);

    BorderPane layout = new BorderPane();
    layout.setTop(menuBar);

    Scene scene = new Scene(layout, 500, 200);

    window.setScene(scene);
    window.show();
}

没有代码片段?我甚至不知道你是否使用fxml或纯javafx来创建你的应用程序:0是的,如果你使用未修饰的stage,你将失去所有好的功能(调整大小、dragAndDrop等),但你也可以使用addListener将这些功能写入你的窗口…这是一项工作,但已经有很多代码片段,这非常有用!关于你的颜色,你可以为你的应用程序使用css或setStyle来创建一个黑色主题:3I使用fxml,但决定只使用普通的javafx代码。关于CSS的注意事项,它会减慢Java应用程序的速度吗?