java swing设计一个笔记本,要求“文件”菜单中的新建、打开、保存、另存为和退出功能; “编辑”菜单中的撤消、剪切、复制、粘贴和删除功能,并有鼠标右键弹出快捷菜单功能;“格式”菜单中的自动换行功能;“查看”菜单的状态栏功能;“帮助”菜单中的查看帮助和关于记事本功能。
时间: 2023-10-07 07:13:23 浏览: 137
好的,这是一个很典型的 Java Swing 布局问题。首先你需要创建一个 JFrame 窗口,然后在窗口上添加一个 JMenuBar,再在 JMenuBar 上添加五个 JMenu,分别是 "文件"、"编辑"、"格式"、"查看" 和 "帮助"。然后在每个 JMenu 上添加对应的 JMenuItem,最后为每个 JMenuItem 添加相应的事件处理器。
具体实现步骤如下:
1. 创建 JFrame 窗口
```java
JFrame frame = new JFrame("记事本");
frame.setSize(800, 600);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
```
2. 创建 JMenuBar 和五个 JMenu
```java
JMenuBar menuBar = new JMenuBar();
JMenu fileMenu = new JMenu("文件");
JMenu editMenu = new JMenu("编辑");
JMenu formatMenu = new JMenu("格式");
JMenu viewMenu = new JMenu("查看");
JMenu helpMenu = new JMenu("帮助");
menuBar.add(fileMenu);
menuBar.add(editMenu);
menuBar.add(formatMenu);
menuBar.add(viewMenu);
menuBar.add(helpMenu);
frame.setJMenuBar(menuBar);
```
3. 在每个 JMenu 上添加对应的 JMenuItem,并添加事件处理器
```java
// 新建
JMenuItem newMenuItem = new JMenuItem("新建");
newMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 处理新建事件
}
});
fileMenu.add(newMenuItem);
// 打开
JMenuItem openMenuItem = new JMenuItem("打开");
openMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 处理打开事件
}
});
fileMenu.add(openMenuItem);
// 保存
JMenuItem saveMenuItem = new JMenuItem("保存");
saveMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 处理保存事件
}
});
fileMenu.add(saveMenuItem);
// 另存为
JMenuItem saveAsMenuItem = new JMenuItem("另存为");
saveAsMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 处理另存为事件
}
});
fileMenu.add(saveAsMenuItem);
// 退出
JMenuItem exitMenuItem = new JMenuItem("退出");
exitMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 处理退出事件
}
});
fileMenu.add(exitMenuItem);
// 撤销
JMenuItem undoMenuItem = new JMenuItem("撤销");
undoMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 处理撤销事件
}
});
editMenu.add(undoMenuItem);
// 剪切
JMenuItem cutMenuItem = new JMenuItem("剪切");
cutMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 处理剪切事件
}
});
editMenu.add(cutMenuItem);
// 复制
JMenuItem copyMenuItem = new JMenuItem("复制");
copyMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 处理复制事件
}
});
editMenu.add(copyMenuItem);
// 粘贴
JMenuItem pasteMenuItem = new JMenuItem("粘贴");
pasteMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 处理粘贴事件
}
});
editMenu.add(pasteMenuItem);
// 删除
JMenuItem deleteMenuItem = new JMenuItem("删除");
deleteMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 处理删除事件
}
});
editMenu.add(deleteMenuItem);
// 自动换行
JMenuItem wrapMenuItem = new JMenuItem("自动换行");
wrapMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 处理自动换行事件
}
});
formatMenu.add(wrapMenuItem);
// 状态栏
JMenuItem statusMenuItem = new JMenuItem("状态栏");
statusMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 处理状态栏事件
}
});
viewMenu.add(statusMenuItem);
// 查看帮助
JMenuItem helpMenuItem = new JMenuItem("查看帮助");
helpMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 处理查看帮助事件
}
});
helpMenu.add(helpMenuItem);
// 关于记事本
JMenuItem aboutMenuItem = new JMenuItem("关于记事本");
aboutMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 处理关于记事本事件
}
});
helpMenu.add(aboutMenuItem);
```
4. 添加鼠标右键弹出快捷菜单功能
```java
JPopupMenu popupMenu = new JPopupMenu();
popupMenu.add(newMenuItem);
popupMenu.add(openMenuItem);
popupMenu.add(saveMenuItem);
popupMenu.addSeparator();
popupMenu.add(cutMenuItem);
popupMenu.add(copyMenuItem);
popupMenu.add(pasteMenuItem);
popupMenu.add(deleteMenuItem);
frame.addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON3) {
popupMenu.show(frame, e.getX(), e.getY());
}
}
});
```
最后,将 JFrame 显示出来即可:
```java
frame.setVisible(true);
```
以上就是实现一个简单的记事本的全部步骤。
阅读全文