2、 编写包含菜单的窗口程序,参考界面如下所示: 提示:设置快捷键方法 setAccelerator( KeyStroke.getKeyStroke(int,int,boolean) ); getKeyStroke( KeyEvent.VK_C, InputEvent.ALT_DOWN_MASK); //ALT+C setAccelerator( KeyStroke.getKeyStroke(String) ); getKeyStroke(“control C”); // Ctrl+C(补充完整代码)
时间: 2024-03-20 12:44:50 浏览: 139
以下是一个简单的包含菜单的窗口程序的完整代码,包括设置快捷键:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MenuWindow extends JFrame {
private JMenuBar menuBar;
private JMenu fileMenu, editMenu;
private JMenuItem newFile, openFile, saveFile, exit, cut, copy, paste;
public MenuWindow() {
setTitle("Menu Window");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建菜单栏
createMenuBar();
// 将菜单栏添加到窗口
setJMenuBar(menuBar);
}
private void createMenuBar() {
// 创建菜单栏
menuBar = new JMenuBar();
// 创建文件菜单
fileMenu = new JMenu("File");
fileMenu.setMnemonic(KeyEvent.VK_F);
// 创建文件菜单项
newFile = new JMenuItem("New");
newFile.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_DOWN_MASK));
openFile = new JMenuItem("Open");
openFile.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_DOWN_MASK));
saveFile = new JMenuItem("Save");
saveFile.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_DOWN_MASK));
exit = new JMenuItem("Exit");
exit.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q, InputEvent.CTRL_DOWN_MASK));
// 将文件菜单项添加到文件菜单中
fileMenu.add(newFile);
fileMenu.add(openFile);
fileMenu.add(saveFile);
fileMenu.addSeparator();
fileMenu.add(exit);
// 创建编辑菜单
editMenu = new JMenu("Edit");
editMenu.setMnemonic(KeyEvent.VK_E);
// 创建编辑菜单项
cut = new JMenuItem("Cut");
cut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_DOWN_MASK));
copy = new JMenuItem("Copy");
copy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_DOWN_MASK));
paste = new JMenuItem("Paste");
paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_DOWN_MASK));
// 将编辑菜单项添加到编辑菜单中
editMenu.add(cut);
editMenu.add(copy);
editMenu.add(paste);
// 将文件菜单和编辑菜单添加到菜单栏中
menuBar.add(fileMenu);
menuBar.add(editMenu);
}
public static void main(String[] args) {
MenuWindow window = new MenuWindow();
window.setVisible(true);
}
}
```
在上面的代码中,我们首先创建了一个 `MenuWindow` 类,继承自 `JFrame`,表示我们要创建一个窗口程序。然后在构造方法中,我们调用了 `createMenuBar()` 方法来创建菜单栏,并将其添加到窗口中。
在 `createMenuBar()` 方法中,我们先创建了菜单栏 `menuBar`,然后创建了两个菜单 `fileMenu` 和 `editMenu`,分别表示文件和编辑。对于每个菜单,我们设置了一个助记符(mnemonic),以便用户可以使用键盘快捷键来访问菜单项。例如,在文件菜单中,我们设置了助记符为 `F`,这意味着用户可以按下 `Alt + F` 来打开文件菜单。
接下来,我们为每个菜单创建了若干个菜单项,并使用 `setAccelerator()` 方法为每个菜单项设置了一个键盘快捷键。例如,对于打开文件菜单项,我们设置了快捷键为 `Ctrl + O`。这样用户就可以通过键盘快捷键来执行相应的操作,而不必使用鼠标单击菜单项。
最后,我们将文件菜单和编辑菜单添加到菜单栏中,并返回菜单栏。
阅读全文