1、Java记事本源代码完整/* * 作品:记事本 * 作者:* * 功能:简单的文字编辑 */import java.awt.*;import java.awt.event.*;import java.io.*;import javax.swing.*;import javax.swing.event.ChangeEvent;import javax.swing.event.ChangeListener;class NotePad extends JFrame private JMenuBar menuBar; private JMenu fielMenu,editMenu,formMenu,a
2、boutMenu; private JMenuItem newMenuItem,openMenuItem,saveMenuItem,exitMenuItem; private JMenuItem cutMenuItem,copyMenuItem,pasteMenuItem,foundItem,replaceItem,selectAll; private JMenuItem font,about; private JTextArea textArea; private JFrame foundFrame,replaceFrame; private JCheckBoxMenuItem wrapli
3、ne; private JTextField textField1=new JTextField(15); private JTextField textField2=new JTextField(15); private JButton startButton,replaceButton,reallButton; int start=0; String value; ; J =new J(); boolean wrap=false; public NotePad() /创建文本域 textArea=new JTextArea(); add(new JScrollPane(textArea),
4、BorderLayout.CENTER); /创建文件菜单及文件菜单项 fielMenu=new JMenu(文件); fielMenu.setFont(new Font(微软雅黑,0,15); newMenuItem=new JMenuItem(新建,new ImageIcon(iconsnew24.gif); newMenuItem.setFont(new Font(微软雅黑,Font.BOLD,13); newMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK); newMen
5、uItem.addActionListener(listener); openMenuItem=new JMenuItem(打开,new ImageIcon(iconsopen24.gif); openMenuItem.setFont(new Font(微软雅黑,Font.BOLD,13); openMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK); openMenuItem.addActionListener(listener); saveMenuItem=new JMenuI
6、tem(保存,new ImageIcon(iconssave.gif); saveMenuItem.setFont(new Font(微软雅黑,Font.BOLD,13); saveMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK); saveMenuItem.addActionListener(listener); exitMenuItem=new JMenuItem(退出,new ImageIcon(iconsexit24.gif); exitMenuItem.setFont(
7、new Font(微软雅黑,Font.BOLD,13); exitMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,InputEvent.CTRL_MASK); exitMenuItem.addActionListener(listener); /创建编辑菜单及菜单项 editMenu=new JMenu(编辑); editMenu.setFont(new Font(微软雅黑,0,15); cutMenuItem=new JMenuItem(剪切,new ImageIcon(iconscut24.gif); cutMenu
8、Item.setFont(new Font(微软雅黑,Font.BOLD,13); cutMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK); cutMenuItem.addActionListener(listener); copyMenuItem=new JMenuItem(复制,new ImageIcon(iconscopy24.gif); copyMenuItem.setFont(new Font(微软雅黑,Font.BOLD,13); copyMenuItem.setAc
9、celerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK); copyMenuItem.addActionListener(listener); pasteMenuItem=new JMenuItem(粘贴,new ImageIcon(iconspaste24.gif); pasteMenuItem.setFont(new Font(微软雅黑,Font.BOLD,13); pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEv
10、ent.CTRL_MASK); pasteMenuItem.addActionListener(listener); foundItem=new JMenuItem(查找); foundItem.setFont(new Font(微软雅黑,Font.BOLD,13); foundItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK); foundItem.addActionListener(listener); replaceItem=new JMenuItem(替换); replaceIte
11、m.setFont(new Font(微软雅黑,Font.BOLD,13); replaceItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,InputEvent.CTRL_MASK); replaceItem.addActionListener(listener); selectAll=new JMenuItem(全选); selectAll.setFont(new Font(微软雅黑,Font.BOLD,13); selectAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.
12、VK_A,InputEvent.CTRL_MASK); selectAll.addActionListener(listener); /创建格式菜单及菜单项 formMenu=new JMenu(格式); formMenu.setFont(new Font(微软雅黑,0,15); wrapline=new JCheckBoxMenuItem(自动换行); wrapline.setFont(new Font(微软雅黑,Font.BOLD,13); wrapline.addActionListener(listener); wrapline.addChangeListener(new Change
13、Listener() public void stateChanged(ChangeEvent e) if(wrapline.isSelected() textArea.setLineWrap(true); else textArea.setLineWrap(false); ); font=new JMenuItem(字体); font.setFont(new Font(微软雅黑,Font.BOLD,13); font.addActionListener(listener); /创建关于菜单 aboutMenu=new JMenu(关于); aboutMenu.setFont(new Font
14、(微软雅黑,0,15); about=new JMenuItem(记事本); about.setFont(new Font(微软雅黑,Font.BOLD,13); about.addActionListener(listener); /添加文件菜单项 fielMenu.add(newMenuItem); fielMenu.add(openMenuItem); fielMenu.add(saveMenuItem); fielMenu.addSeparator(); fielMenu.add(exitMenuItem); /添加编辑菜单项 editMenu.add(cutMenuItem); ed
15、itMenu.add(copyMenuItem); editMenu.add(pasteMenuItem); editMenu.add(foundItem); editMenu.add(replaceItem); editMenu.addSeparator(); editMenu.add(selectAll); /添加格式菜单项 formMenu.add(wrapline); formMenu.add(font); /添加关于菜单项 aboutMenu.add(about); /添加菜单 menuBar=new JMenuBar(); menuBar.add(fielMenu); menuBa
16、r.add(editMenu); menuBar.add(formMenu); menuBar.add(aboutMenu); setJMenuBar(menuBar); /创建两个框架,用作查找和替换 foundFrame=new JFrame(); replaceFrame=new JFrame(); /创建两个文本框 textField1=new JTextField(15); textField2=new JTextField(15); startButton=new JButton(开始); startButton.addActionListener(listener); repla
17、ceButton=new JButton(替换为); replaceButton.addActionListener(listener); reallButton=new JButton(全部替换); reallButton.addActionListener(listener); /创建菜单项事件监听器 ActionListener listener=new ActionListener() public void actionPerformed(ActionEvent e) String name=e.getActionCommand(); if(e.getSource() instanc
18、eof JMenuItem) if(新建.equals(name) textArea.setText(); ; if(打开.equals(name) if() .setSelected); int returnVal=.showOpenDialog(NotePad.this); if(returnVal=J.APPROVE_OPTION) (); try reader=new (file); int len=(int)(); char array=new charlen; reader.read(array,0,len); reader.close(); textArea.setText(ne
19、w String(array); catch(Exception e_open) e_open.printStackTrace(); if(保存.equals(name) if() .setSelected); int returnVal=.showSaveDialog(NotePad.this); if(returnVal=J.APPROVE_OPTION) (); try writer=new (file); writer.write(textArea.getText(); writer.close(); catch (Exception e_save) e_save.getStackTr
20、ace(); if(退出.equals(name) System.exit(0); if(剪切.equals(name) textArea.cut(); if(复制.equals(name) textArea.copy(); if(粘贴.equals(name) textArea.paste(); if(查找.equals(name) value=textArea.getText(); foundFrame.add(textField1,BorderLayout.CENTER); foundFrame.add(startButton,BorderLayout.SOUTH); foundFram
21、e.setLocation(300,300); foundFrame.setTitle(查找); foundFrame.pack(); foundFrame.setVisible(true); foundFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); if(替换.equals(name) value=textArea.getText(); JLabel label1=new JLabel(查找内容:); JLabel label2=new JLabel(替换为:); JPanel panel1=new JPanel(); pan
22、el1.setLayout(new GridLayout(2,2); JPanel panel2=new JPanel(); panel2.setLayout(new GridLayout(1,3); replaceFrame.add(panel1,BorderLayout.NORTH); replaceFrame.add(panel2,BorderLayout.CENTER); panel1.add(label1); panel1.add(textField1); panel1.add(label2); panel1.add(textField2); panel2.add(startButt
23、on); panel2.add(replaceButton); panel2.add(reallButton); replaceFrame.setTitle(替换); replaceFrame.setLocation(300,300); replaceFrame.pack(); replaceFrame.setVisible(true); replaceFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); if(开始.equals(name)|下一个.equals(name) String temp=textField1.getTex
24、t(); int s=value.indexOf(temp,start); if(value.indexOf(temp,start)!=-1) textArea.setSelectionStart(s); textArea.setSelectionEnd(s+temp.length(); textArea.setSelectedTextColor(Color.GREEN); start=s+1; startButton.setText(下一个); else JOptionPane.showMessageDialog(foundFrame, 查找完毕!, 提示, 0,new ImageIcon(
25、iconssearch.gif); foundFrame.dispose(); if(替换为.equals(name) String temp=textField1.getText(); int s=value.indexOf(temp,start); if(value.indexOf(temp,start)!=-1) textArea.setSelectionStart(s); textArea.setSelectionEnd(s+temp.length(); textArea.setSelectedTextColor(Color.GREEN); start=s+1; textArea.re
26、placeSelection(textField2.getText(); else JOptionPane.showMessageDialog(foundFrame, 查找完毕!, 提示, 0,new ImageIcon(iconssearch.gif); foundFrame.dispose(); if(全部替换.equals(name) String temp=textArea.getText(); temp=temp.replaceAll(textField1.getText(),textField2.getText(); textArea.setText(temp); if(全选.eq
27、uals(name) textArea.selectAll(); if(字体.equals(name) FontDialog fontDialog=new FontDialog(NotePad.this); fontDialog.setVisible(true); if(textArea.getFont()!=fontDialog.getFont() textArea.setFont(fontDialog.getFont(); if(记事本.equals(name) AboutDialog aboutDialog=new AboutDialog(NotePad.this); aboutDialog.setVisible(true); ; /创建字体设置对话面板,并添加相应事件监听器 class FontDialog extends JDialog implements ItemListener, ActionListener, WindowListener public JCheckBox Bold=new JCheckBox(Bold,false); public JChe
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1