java点击窗口菜单栏弹出新窗口
时间: 2023-07-19 20:46:38 浏览: 170
在Java中,可以使用JavaFX或Swing来创建窗口应用程序。下面以JavaFX为例,介绍如何点击窗口菜单栏弹出新窗口的实现。
1. 创建主窗口
首先,需要创建一个主窗口。可以使用JavaFX提供的Stage类来创建窗口。在主窗口中,需要创建一个菜单栏,用于点击弹出新窗口。代码如下:
```java
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
// 创建一个菜单栏
MenuBar menuBar = new MenuBar();
// 创建一个菜单
Menu menu = new Menu("文件");
// 创建一个菜单项
MenuItem menuItem = new MenuItem("新建");
// 将菜单项添加到菜单中
menu.getItems().add(menuItem);
// 将菜单添加到菜单栏中
menuBar.getMenus().add(menu);
// 创建一个边界布局
BorderPane root = new BorderPane();
// 将菜单栏添加到边界布局的顶部
root.setTop(menuBar);
// 创建一个场景
Scene scene = new Scene(root, 400, 300);
// 将场景添加到主窗口
primaryStage.setScene(scene);
// 显示主窗口
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
```
2. 创建新窗口
接下来,在菜单项的事件处理方法中,创建一个新窗口并显示。可以使用JavaFX提供的Stage类来创建窗口。代码如下:
```java
// 在菜单项的事件处理方法中创建新窗口
menuItem.setOnAction(event -> {
// 创建一个新窗口
Stage newStage = new Stage();
// 设置新窗口的标题
newStage.setTitle("新窗口");
// 创建一个场景
Scene newScene = new Scene(new Label("这是一个新窗口"), 200, 100);
// 将场景添加到新窗口
newStage.setScene(newScene);
// 显示新窗口
newStage.show();
});
```
完整代码如下:
```java
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.MenuItem;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception {
// 创建一个菜单栏
MenuBar menuBar = new MenuBar();
// 创建一个菜单
Menu menu = new Menu("文件");
// 创建一个菜单项
MenuItem menuItem = new MenuItem("新建");
// 在菜单项的事件处理方法中创建新窗口
menuItem.setOnAction(event -> {
// 创建一个新窗口
Stage newStage = new Stage();
// 设置新窗口的标题
newStage.setTitle("新窗口");
// 创建一个场景
Scene newScene = new Scene(new Label("这是一个新窗口"), 200, 100);
// 将场景添加到新窗口
newStage.setScene(newScene);
// 显示新窗口
newStage.show();
});
// 将菜单项添加到菜单中
menu.getItems().add(menuItem);
// 将菜单添加到菜单栏中
menuBar.getMenus().add(menu);
// 创建一个边界布局
BorderPane root = new BorderPane();
// 将菜单栏添加到边界布局的顶部
root.setTop(menuBar);
// 创建一个场景
Scene scene = new Scene(root, 400, 300);
// 将场景添加到主窗口
primaryStage.setScene(scene);
// 显示主窗口
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
```
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)