代码如下:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.InputEvent;
public class TextEditor extends JFrame {
private JTextArea textArea;
public TextEditor() {
super("文本编辑器");
// 创建文本区域
textArea = new JTextArea();
JScrollPane scrollPane = new JScrollPane(textArea);
getContentPane().add(scrollPane, BorderLayout.CENTER);
// 创建菜单栏
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
// 创建文件菜单
JMenu fileMenu = new JMenu("文件");
fileMenu.setMnemonic(KeyEvent.VK_F);
menuBar.add(fileMenu);
// 创建复制菜单项
JMenuItem copyMenuItem = new JMenuItem("复制");
copyMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_DOWN_MASK));
copyMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
copyText();
}
});
fileMenu.add(copyMenuItem);
// 创建剪切菜单项
JMenuItem cutMenuItem = new JMenuItem("剪切");
cutMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_DOWN_MASK));
cutMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
cutText();
}
});
fileMenu.add(cutMenuItem);
// 创建粘贴菜单项
JMenuItem pasteMenuItem = new JMenuItem("粘贴");
pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_DOWN_MASK));
pasteMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
pasteText();
}
});
fileMenu.add(pasteMenuItem);
// 设置窗口属性
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 300);
setLocationRelativeTo(null);
setVisible(true);
}
private void copyText() {
textArea.copy();
}
private void cutText() {
textArea.cut();
}
private void pasteText() {
textArea.paste();
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new TextEditor();
}
});
}
}