能用Java编写一个带菜单栏的窗口么?
时间: 2024-05-08 12:22:27 浏览: 7
可以的,下面是一个简单的带菜单栏的窗口的 Java 代码示例:
```
import javax.swing.*;
import java.awt.event.*;
public class MyWindow extends JFrame implements ActionListener {
JMenuBar menuBar;
JMenu fileMenu, editMenu;
JMenuItem newMenuItem, saveMenuItem, cutMenuItem, copyMenuItem, pasteMenuItem;
public MyWindow() {
setTitle("My Window");
setSize(400, 300);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 初始化菜单栏和菜单项
menuBar = new JMenuBar();
fileMenu = new JMenu("File");
editMenu = new JMenu("Edit");
newMenuItem = new JMenuItem("New");
saveMenuItem = new JMenuItem("Save");
cutMenuItem = new JMenuItem("Cut");
copyMenuItem = new JMenuItem("Copy");
pasteMenuItem = new JMenuItem("Paste");
// 添加菜单项到菜单中
fileMenu.add(newMenuItem);
fileMenu.add(saveMenuItem);
editMenu.add(cutMenuItem);
editMenu.add(copyMenuItem);
editMenu.add(pasteMenuItem);
// 添加菜单到菜单栏中
menuBar.add(fileMenu);
menuBar.add(editMenu);
// 设置菜单栏
setJMenuBar(menuBar);
// 监听菜单项
newMenuItem.addActionListener(this);
saveMenuItem.addActionListener(this);
cutMenuItem.addActionListener(this);
copyMenuItem.addActionListener(this);
pasteMenuItem.addActionListener(this);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
// 处理菜单项点击事件
if (e.getSource() == newMenuItem) {
JOptionPane.showMessageDialog(this, "New menu item clicked");
} else if (e.getSource() == saveMenuItem) {
JOptionPane.showMessageDialog(this, "Save menu item clicked");
} else if (e.getSource() == cutMenuItem) {
JOptionPane.showMessageDialog(this, "Cut menu item clicked");
} else if (e.getSource() == copyMenuItem) {
JOptionPane.showMessageDialog(this, "Copy menu item clicked");
} else if (e.getSource() == pasteMenuItem) {
JOptionPane.showMessageDialog(this, "Paste menu item clicked");
}
}
public static void main(String[] args) {
new MyWindow();
}
}
```
上面的代码使用了 Java Swing 库来创建窗口和菜单栏,并通过实现 ActionListener 接口处理菜单项的点击事件。你可以根据自己的需要修改菜单项的名称和处理事件的逻辑。