fileMenu.add(menuSave);
fileMenu.add(menuSaveAs); fileMenu.addSeparator(); // 分隔线 fileMenu.add(menuClose);
JMenu editMenu = new JMenu(\编辑\设置「编辑」菜单 menuCut = new JMenuItem(\剪切\创建\编辑\的子菜单\剪切\ menuCut.setAccelerator //设置\编辑\的快捷键 (
KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK));
menuCopy = new JMenuItem(\复制\创建\编辑\的子菜单\复制\ menuCopy.setAccelerator //设置\复制\的快捷键 (
KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK));
menuPaste = new JMenuItem(\粘贴\创建\编辑\的子菜单\粘贴\ menuPaste.setAccelerator//设置\粘贴\的快捷键 (
KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_MASK)); editMenu.add(menuCut); editMenu.add(menuCopy); editMenu.add(menuPaste);
JMenu aboutMenu = new JMenu(\关于\设置「关于」菜单 menuAbout = new JMenuItem(\关于JNotePad\ aboutMenu.add(menuAbout);
menuBar.add(fileMenu); menuBar.add(editMenu); menuBar.add(aboutMenu);
setJMenuBar(menuBar);
textArea = new JTextArea();// 文字编辑区域
textArea.setFont(new Font(\宋体\ textArea.setLineWrap(true);
JScrollPane panel = new JScrollPane(textArea,
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
Container contentPane = getContentPane();
contentPane.add(panel, BorderLayout.CENTER); // 状态栏
stateBar = new JLabel(\未修改\
stateBar.setHorizontalAlignment(SwingConstants.LEFT); stateBar.setBorder(
BorderFactory.createEtchedBorder());
contentPane.add(stateBar, BorderLayout.SOUTH);
popUpMenu = editMenu.getPopupMenu(); fileChooser = new JFileChooser(); }
private void setUpEventListener() {
// 按下窗口关闭钮事件处理 addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
closeFile(); } } );
// 菜单 - 打开
menuOpen.addActionListener (
new ActionListener() {
public void actionPerformed(ActionEvent e) {
openFile(); } } );
// 菜单 - 保存
menuSave.addActionListener
(
new ActionListener() {
public void actionPerformed(ActionEvent e) {
saveFile(); } } );
// 菜单 - 另存为
menuSaveAs.addActionListener (
new ActionListener() {
public void actionPerformed(ActionEvent e) {
saveFileAs(); } } );
// 菜单 - 关闭文件
menuClose.addActionListener (
new ActionListener() {
public void actionPerformed(ActionEvent e) {
closeFile(); } } );
// 菜单 - 剪切
menuCut.addActionListener (
new ActionListener() {
public void actionPerformed(ActionEvent e) {
cut(); }
} );
// 菜单 - 复制
menuCopy.addActionListener (
new ActionListener() {
public void actionPerformed(ActionEvent e) {
copy(); } } );
// 菜单 - 粘贴
menuPaste.addActionListener (
new ActionListener() {
public void actionPerformed(ActionEvent e) {
paste(); } } );
// 菜单 - 关于
menuAbout.addActionListener (
new ActionListener() {
public void actionPerformed(ActionEvent e) {
// 显示对话框
JOptionPane.showOptionDialog(null, \程序名称:\\n 记事本 \\n\ \程序设计:\\n java \\n\
\简介:\\n 此记事本为一个简单的文字编辑器\\n\ \ \\n\ \ \\n\ \
\关于JNotePad\
JOptionPane.DEFAULT_OPTION,
JOptionPane.INFORMATION_MESSAGE,
null, null, null); } }
);
// 编辑区键盘事件
textArea.addKeyListener (
new KeyAdapter() {
public void keyTyped(KeyEvent e) {
processTextArea(); } } );
// 编辑区鼠标事件
textArea.addMouseListener (
new MouseAdapter() {
public void mouseReleased(MouseEvent e) {
if(e.getButton() == MouseEvent.BUTTON3) popUpMenu.show(editMenu, e.getX(), e.getY()); }
public void mouseClicked(MouseEvent e) {
if(e.getButton() == MouseEvent.BUTTON1) popUpMenu.setVisible(false); } }
); }
private void openFile() {
if(isCurrentFileSaved()) // 文件是否为保存状态 {
open(); // 打开 } else