疯狂java讲义习题11.4

xiaoxiao2021-02-28  115

题目描述: 编写仿windows记事本的小程序

点击(此处)折叠或打开

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 ActionListener listener = null;     //private static final Object BoderLayout = null;     private JMenuBar menuBar;     private JMenu fileMenu,editMenu,formatMenu,aboutMenu;     private JMenuItem openMenuItem,newMenuItem,saveMenuItem,exitMenuItem;     private JMenuItem cutMenu,copyMenu,findMenu,replaceMenu,selectAllMenu,pasteMenu;     private JTextArea textArea;     private JMenuItem fontMenuItem,aboutMenuItem;     private JTextField textField1 = new JTextField(15);     private JTextField textField2 = new JTextField(15);     private JButton startButton,replaceButton,replaceAllButton;     private JFrame findJframe,replaceJframe;     int start=0;     String value;     File file=null;     JFileChooser fileChooser=new JFileChooser();     JCheckBoxMenuItem checkMenu;          boolean wrap=false;     public notePad()     {         textArea = new JTextArea();         add(new JScrollPane(textArea),BorderLayout.CENTER);         fileMenu = new JMenu("文件");         fileMenu.setFont(new Font("微软雅黑",0,15));         newMenuItem = new JMenuItem("新建");         newMenuItem.setFont(new Font("微软雅黑",Font.BOLD,13));         newMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));         newMenuItem.addActionListener(listener);                      openMenuItem=new JMenuItem("打开",new ImageIcon("icons\\open24.gif"));         openMenuItem.setFont(new Font("微软雅黑",Font.BOLD,13));         openMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));         openMenuItem.addActionListener(listener);                  saveMenuItem=new JMenuItem("保存",new ImageIcon("icons\\save.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("icons\\exit24.gif"));         exitMenuItem.setFont(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));         cutMenu = new JMenuItem("剪切");         cutMenu.setFont(new Font("微软雅黑",Font.BOLD,13));         cutMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));         cutMenu.addActionListener(listener);                  copyMenu = new JMenuItem("复制");         copyMenu.setFont(new Font("微软雅黑",Font.BOLD,13));         copyMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));         copyMenu.addActionListener(listener);                  //editMenu = new JMenu("编辑");         //editMenu.setFont(new Font("微软雅黑",0,15));         pasteMenu = new JMenuItem("粘贴");         pasteMenu.setFont(new Font("微软雅黑",Font.BOLD,13));         pasteMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));         pasteMenu.addActionListener(listener);                  //editMenu = new JMenu("编辑");     //    editMenu.setFont(new Font("微软雅黑",0,15));         findMenu = new JMenuItem("查找");         findMenu.setFont(new Font("微软雅黑",Font.BOLD,13));         findMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK));         findMenu.addActionListener(listener);                  //editMenu = new JMenu("编辑");         //editMenu.setFont(new Font("微软雅黑",0,15));         replaceMenu = new JMenuItem("替换");         replaceMenu.setFont(new Font("微软雅黑",Font.BOLD,13));         replaceMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,InputEvent.CTRL_MASK));         replaceMenu.addActionListener(listener);                  //editMenu = new JMenu("编辑");         //editMenu.setFont(new Font("微软雅黑",0,15));         selectAllMenu = new JMenuItem("全选");         selectAllMenu.setFont(new Font("微软雅黑",Font.BOLD,13));         selectAllMenu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));         selectAllMenu.addActionListener(listener);                  formatMenu = new JMenu("格式");         formatMenu.setFont(new Font("微软雅黑",0,15));                  checkMenu = new JCheckBoxMenuItem("换行");         checkMenu.setFont(new Font("微软雅黑",Font.BOLD,13));         checkMenu.addChangeListener(new ChangeListener()         {             public void stateChanged(ChangeEvent e)             {                 if (checkMenu.isSelected())                 {                                          textArea.setLineWrap(true);                 }                 else                 {                                          textArea.setLineWrap(false);                 }             }         });                                    fontMenuItem = new JMenuItem("字体");         fontMenuItem.setFont(new Font("微软雅黑",Font.BOLD,13));         fontMenuItem.addActionListener(listener);                           fileMenu.add(newMenuItem);         fileMenu.add(openMenuItem);         fileMenu.add(saveMenuItem);         fileMenu.add(exitMenuItem);         editMenu.add(selectAllMenu);         editMenu.add(replaceMenu);         editMenu.add(findMenu);         editMenu.add(cutMenu);         editMenu.add(pasteMenu);         editMenu.add(copyMenu);         formatMenu.add(checkMenu);         formatMenu.add(fontMenuItem);                           menuBar=new JMenuBar();         menuBar.add(fileMenu);         menuBar.add(editMenu);         menuBar.add(formatMenu);         setJMenuBar(menuBar);         findJframe = new JFrame("查找框");         startButton=new JButton("开始");         startButton.addActionListener(listener);         replaceJframe = new JFrame("替换框");         textField1=new JTextField(15);         textField2=new JTextField(15);         replaceButton = new JButton("替换为");         replaceButton.addActionListener(listener);                  replaceAllButton = new JButton("全部替换");         replaceAllButton.addActionListener(listener);     //    this.setVisible(true);         //this.setBounds(10, 10, 400, 300);     }         ActionListener listener=new ActionListener() {             public void actionPerformed(ActionEvent e) {                 String name=e.getActionCommand();                 if(e.getSource() instanceof JMenuItem){                     if("新建".equals(name)){                         textArea.setText("");                         file=null;                     }                     if("打开".equals(name)){                         if(file!=null){                             fileChooser.setSelectedFile(file);                         }                         int returnVal=fileChooser.showOpenDialog(notePad.this);                         if(returnVal==JFileChooser.APPROVE_OPTION){                             file=fileChooser.getSelectedFile();                             }                             try{                                 FileReader reader=new FileReader(file);                                 int len=(int)file.length();                                 char[] array=new char[len];                                 reader.read(array,0,len);                                 reader.close();                                 textArea.setText(new String(array));                             }                             catch(Exception e_open){                                 e_open.printStackTrace();                             }                         }                     }                     if("保存".equals(name)){                         if(file!=null){                             fileChooser.setSelectedFile(file);                         }                         int returnVal=fileChooser.showSaveDialog(notePad.this);                         if(returnVal==JFileChooser.APPROVE_OPTION){                             file=fileChooser.getSelectedFile();                         }                         try{                             FileWriter writer=new FileWriter(file);                             writer.write(textArea.getText());                             writer.close();                         }                         catch (Exception e_save) {                             e_save.getStackTrace();                         }                     }                     if("退出".equals(name)){                         System.exit(0);                     }                     if ("剪切".equals(name))                     {                         textArea.cut();                     }                     if ("复制".equals(name))                     {                         textArea.copy();                     }                     if ("粘贴".equals(name))                     {                         textArea.paste();                     }                     if ("全选".equals(name)){                         //System.out.println("全选");                                                  textArea.selectAll();                     }                     if ("查找".equals(name))                     {                         value = textArea.getText();                         findJframe.add(textField1,BorderLayout.CENTER);                         findJframe.add(startButton,BorderLayout.SOUTH);                         findJframe.setLocation(300, 300);                         findJframe.pack();                         findJframe.setVisible(true);                         findJframe.setDefaultCloseOperation(DISPOSE_ON_CLOSE); ;                                             }                     if ("替换".equals(name))                     {                         value = textArea.getText();                         JLabel label1 = new JLabel("查找内容");                         JLabel label2 = new JLabel("替换为");                         JPanel panel1 = new JPanel();                         panel1.setLayout(new GridLayout(2,2));                         JPanel panel2 = new JPanel();                         panel2.setLayout(new GridLayout(1,3));                         replaceJframe.add(panel1,BorderLayout.NORTH);                         replaceJframe.add(panel2,BorderLayout.CENTER);                         panel1.add(label1);                         panel1.add(textField1);                         panel1.add(label2);                         panel1.add(textField2);                         panel2.add(startButton);                         panel2.add(replaceButton);                         panel2.add(replaceAllButton);                         replaceJframe.setLocation(300,300);                         replaceJframe.pack();                         replaceJframe.setVisible(true);                         replaceJframe.setDefaultCloseOperation(DISPOSE_ON_CLOSE);                     }                     if("开始".equals(name)||"下一个".equals(name)){                         String temp=textField1.getText();                          int s=value.indexOf(temp,start);                          if(s!=-1){                             textArea.setSelectionStart(s);                             textArea.setSelectionEnd(s+temp.length());                             textArea.setSelectedTextColor(Color.GREEN);                             start=s+1;                             startButton.setText("下一个");                         }else {                             JOptionPane.showMessageDialog(findJframe, "查找完毕!", "提示", 0,new ImageIcon("icons\\search.gif"));                          findJframe.dispose();                         }                         }                     if ("替换为".equals(name))                     {                         String temp = textField1.getText();                         int s = value.indexOf(temp,start);                         if (s != -1)                         {                             textArea.setSelectionStart(s);                             textArea.setSelectionEnd(s+temp.length());                             textArea.setSelectedTextColor(Color.blue);                             start = s+1;                             textArea.replaceSelection(textField2.getText());                         }                         else                         {                             JOptionPane.showMessageDialog(findJframe, "查找完毕","提示",0,new ImageIcon(""));                             findJframe.dispose();                                                      }                     }                     if ("全部替换".equals(name))                     {                         String temp = textArea.getText();                         temp.replaceAll(textField1.getText(), textField2.getText());                         textArea.setText(temp);                         }                     if ("字体 ".equals(name))                     {                         FontDialog fontDialog = new FontDialog(notePad.this);                         fontDialog.setVisible(true);                         if (textArea.getFont() != fontDialog.getFont())                         {                             textArea.setFont(fontDialog.getFont());                         }                     }             }                       };         class FontDialog extends JDialog implements ItemListener, ActionListener, WindowListener     {         public JCheckBox Bold=new JCheckBox("Bold",false);         public JCheckBox Italic=new JCheckBox("Italic",false);         public List Size,Name;         public int FontName;         public int FontStyle;         public int FontSize;         public JButton OK=new JButton("OK");         public JButton Cancel=new JButton("Cancel");         public JTextArea Text=new JTextArea("字体预览文本域\n0123456789\nAaBbCcXxYyZz");         public FontDialog(JFrame owner) {             super(owner,"字体设置",true);             GraphicsEnvironment g=GraphicsEnvironment.getLocalGraphicsEnvironment();             String name[]=g.getAvailableFontFamilyNames();             Name=new List();             Size=new List();             FontName=0;             FontStyle=0;             FontSize=8;             int i=0;             Name.add("Default Value");                          for(i=0;i<name.length;i++)                 Name.add(name[i]);             for(i=8;i<257;i++)                 Size.add(String.valueOf(i));                          this.setLayout(null);             this.setBounds(250,200,480, 306);             this.setResizable(false);                          OK.setFocusable(false);             Cancel.setFocusable(false);             Bold.setFocusable(false);             Italic.setFocusable(false);             Name.setFocusable(false);             Size.setFocusable(false);         //    Calender             Name.setBounds(10, 10, 212, 259);             this.add(Name);             Bold.setBounds(314, 10, 64, 22);             this.add(Bold);             Italic.setBounds(388, 10, 64, 22);             this.add(Italic);             Size.setBounds(232, 10, 64, 259);             this.add(Size);             Text.setBounds(306, 40, 157, 157);             this.add(Text);             OK.setBounds(306, 243, 74, 26);             this.add(OK);             Cancel.setBounds(390, 243, 74, 26);             this.add(Cancel);                          Name.select(FontName);             Size.select(FontSize);             Text.setFont(getFont());                          Name.addItemListener(this);             Size.addItemListener(this);             Bold.addItemListener(this);             Italic.addItemListener(this);             OK.addActionListener(this);             Cancel.addActionListener(this);             this.addWindowListener(this);         }         public void itemStateChanged(ItemEvent e) {             Text.setFont(getFont());         }         public void actionPerformed(ActionEvent e) {             if(e.getSource()==OK){                 FontName=Name.getSelectedIndex();                 FontStyle=getStyle();                 FontSize=Size.getSelectedIndex();                 this.setVisible(false);             }             else cancel();         }         public void windowClosing(WindowEvent e) {             cancel();         }         public Font getFont(){             if(Name.getSelectedIndex()==0) return new Font("新宋体",getStyle(),Size.getSelectedIndex()+8);             else return new Font(Name.getSelectedItem(),getStyle(),Size.getSelectedIndex()+8);         }         public void cancel(){             Name.select(FontName);             Size.select(FontSize);             setStyle();             Text.setFont(getFont());             this.setVisible(false);         }         public void setStyle(){             if(FontStyle==0 || FontStyle==2) Bold.setSelected(false);             else Bold.setSelected(true);             if(FontStyle==0 || FontStyle==1) Italic.setSelected(false);             else Italic.setSelected(true);         }         public int getStyle(){             int bold=0,italic=0;             if(Bold.isSelected()) bold=1;             if(Italic.isSelected()) italic=1;             return bold+italic*2;         }         public void windowActivated(WindowEvent arg0) {}         public void windowClosed(WindowEvent arg0) {}         public void windowDeactivated(WindowEvent arg0) {}         public void windowDeiconified(WindowEvent arg0) {}         public void windowIconified(WindowEvent arg0) {}         public void windowOpened(WindowEvent arg0) {}     } } public class tengyanbo {     public static void main(String[] args)     {         EventQueue.invokeLater(new Runnable(){             public void run()             {                 notePad np = new notePad();                 np.setTitle("滕艳波的记事本");                 np.setVisible(true);                 np.setBounds(100,100,800,600);                 np.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);                              }                      });     } } 参考程序:

点击(此处)折叠或打开

/**  * 作品:记事本  * 作者:***  * 功能:简单的文字编辑  */ 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,aboutMenu;     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 wrapline;     private JTextField textField1=new JTextField(15);//JTextField(int columns) 构造一个具有指定列数的新的空 TextField。     private JTextField textField2=new JTextField(15);     private JButton startButton,replaceButton,reallButton;          int start=0;     String value;     File file=null;     JFileChooser fileChooser=new JFileChooser();     boolean wrap=false;          public NotePad(){         //创建文本域         textArea=new JTextArea();//JTextArea() 构造新的 TextArea。         add(new JScrollPane(textArea),BorderLayout.CENTER);         //创建文件菜单及文件菜单项         fielMenu=new JMenu("文件");         fielMenu.setFont(new Font("微软雅黑",0,15));                  newMenuItem=new JMenuItem("新建",new ImageIcon(""));         newMenuItem.setFont(new Font("微软雅黑",Font.BOLD,13));         newMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));         newMenuItem.addActionListener(listener);                      openMenuItem=new JMenuItem("打开",new ImageIcon("icons\\open24.gif"));         openMenuItem.setFont(new Font("微软雅黑",Font.BOLD,13));         openMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));         openMenuItem.addActionListener(listener);                  saveMenuItem=new JMenuItem("保存",new ImageIcon("icons\\save.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("icons\\exit24.gif"));         exitMenuItem.setFont(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("icons\\cut24.gif"));         cutMenuItem.setFont(new Font("微软雅黑",Font.BOLD,13));         cutMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));         cutMenuItem.addActionListener(listener);                  copyMenuItem=new JMenuItem("复制",new ImageIcon("icons\\copy24.gif"));         copyMenuItem.setFont(new Font("微软雅黑",Font.BOLD,13));         copyMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));         copyMenuItem.addActionListener(listener);                  pasteMenuItem=new JMenuItem("粘贴",new ImageIcon("icons\\paste24.gif"));         pasteMenuItem.setFont(new Font("微软雅黑",Font.BOLD,13));         pasteMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.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("替换");         replaceItem.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.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 ChangeListener() {             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("微软雅黑",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);         editMenu.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);         menuBar.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);         replaceButton=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() instanceof JMenuItem){                 if("新建".equals(name)){                     textArea.setText("");                     file=null;                 }                 if("打开".equals(name)){                     if(file!=null){                         fileChooser.setSelectedFile(file);                     }                     int returnVal=fileChooser.showOpenDialog(NotePad.this);                     if(returnVal==JFileChooser.APPROVE_OPTION){                         file=fileChooser.getSelectedFile();                         }                         try{                             FileReader reader=new FileReader(file);                             int len=(int)file.length();                             char[] array=new char[len];                             reader.read(array,0,len);                             reader.close();                             textArea.setText(new String(array));                         }                         catch(Exception e_open){                             e_open.printStackTrace();                         }                     }                 }                 if("保存".equals(name)){                     if(file!=null){                         fileChooser.setSelectedFile(file);                     }                     int returnVal=fileChooser.showSaveDialog(NotePad.this);                     if(returnVal==JFileChooser.APPROVE_OPTION){                         file=fileChooser.getSelectedFile();                     }                     try{                         FileWriter writer=new FileWriter(file);                         writer.write(textArea.getText());                         writer.close();                     }                     catch (Exception e_save) {                         e_save.getStackTrace();                     }                 }                 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);                     foundFrame.setLocation(300,300);                     foundFrame.setTitle("查找");                     foundFrame.pack();                     foundFrame.setVisible(true);                     foundFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);                 }     //            foundFrame.                 if("替换".equals(name)){                     value=textArea.getText();                     JLabel label1=new JLabel("查找内容:");                     JLabel label2=new JLabel("替换为:");                     JPanel panel1=new JPanel();                     panel1.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(startButton);                     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.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;                         startButton.setText("下一个");                     }else {                         JOptionPane.showMessageDialog(foundFrame, "查找完毕!", "提示", 0,new ImageIcon("icons\\search.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.replaceSelection(textField2.getText());                         }else {                             JOptionPane.showMessageDialog(foundFrame, "查找完毕!", "提示", 0,new ImageIcon("icons\\search.gif"));                             foundFrame.dispose();                         }                 }                 if("全部替换".equals(name)){                     String temp=textArea.getText();                     temp=temp.replaceAll(textField1.getText(),textField2.getText());                     textArea.setText(temp);                                      }                 if("全选".equals(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 JCheckBox Italic=new JCheckBox("Italic",false);         public List Size,Name;         public int FontName;         public int FontStyle;         public int FontSize;         public JButton OK=new JButton("OK");         public JButton Cancel=new JButton("Cancel");         public JTextArea Text=new JTextArea("字体预览文本域\n0123456789\nAaBbCcXxYyZz");         public FontDialog(JFrame owner) {             super(owner,"字体设置",true);             GraphicsEnvironment g=GraphicsEnvironment.getLocalGraphicsEnvironment();             String name[]=g.getAvailableFontFamilyNames();             Name=new List();             Size=new List();             FontName=0;             FontStyle=0;             FontSize=8;             int i=0;             Name.add("Default Value");                          for(i=0;i<name.length;i++)                 Name.add(name[i]);             for(i=8;i<257;i++)                 Size.add(String.valueOf(i));                          this.setLayout(null);             this.setBounds(250,200,480, 306);             this.setResizable(false);                          OK.setFocusable(false);             Cancel.setFocusable(false);             Bold.setFocusable(false);             Italic.setFocusable(false);             Name.setFocusable(false);             Size.setFocusable(false);         //    Calender             Name.setBounds(10, 10, 212, 259);             this.add(Name);             Bold.setBounds(314, 10, 64, 22);             this.add(Bold);             Italic.setBounds(388, 10, 64, 22);             this.add(Italic);             Size.setBounds(232, 10, 64, 259);             this.add(Size);             Text.setBounds(306, 40, 157, 157);             this.add(Text);             OK.setBounds(306, 243, 74, 26);             this.add(OK);             Cancel.setBounds(390, 243, 74, 26);             this.add(Cancel);                          Name.select(FontName);             Size.select(FontSize);             Text.setFont(getFont());                          Name.addItemListener(this);             Size.addItemListener(this);             Bold.addItemListener(this);             Italic.addItemListener(this);             OK.addActionListener(this);             Cancel.addActionListener(this);             this.addWindowListener(this);         }         public void itemStateChanged(ItemEvent e) {             Text.setFont(getFont());         }         public void actionPerformed(ActionEvent e) {             if(e.getSource()==OK){                 FontName=Name.getSelectedIndex();                 FontStyle=getStyle();                 FontSize=Size.getSelectedIndex();                 this.setVisible(false);             }             else cancel();         }         public void windowClosing(WindowEvent e) {             cancel();         }         public Font getFont(){             if(Name.getSelectedIndex()==0) return new Font("新宋体",getStyle(),Size.getSelectedIndex()+8);             else return new Font(Name.getSelectedItem(),getStyle(),Size.getSelectedIndex()+8);         }         public void cancel(){             Name.select(FontName);             Size.select(FontSize);             setStyle();             Text.setFont(getFont());             this.setVisible(false);         }         public void setStyle(){             if(FontStyle==0 || FontStyle==2) Bold.setSelected(false);             else Bold.setSelected(true);             if(FontStyle==0 || FontStyle==1) Italic.setSelected(false);             else Italic.setSelected(true);         }         public int getStyle(){             int bold=0,italic=0;             if(Bold.isSelected()) bold=1;             if(Italic.isSelected()) italic=1;             return bold+italic*2;         }         public void windowActivated(WindowEvent arg0) {}         public void windowClosed(WindowEvent arg0) {}         public void windowDeactivated(WindowEvent arg0) {}         public void windowDeiconified(WindowEvent arg0) {}         public void windowIconified(WindowEvent arg0) {}         public void windowOpened(WindowEvent arg0) {}     }          //创建关于对话框     class AboutDialog extends JDialog implements ActionListener{         public JButton OK,Icon;         public JLabel Name,Version,Author,Java;         public JPanel Panel;         AboutDialog(JFrame owner) {             super(owner,"关于",true);             OK=new JButton("OK");             Icon=new JButton(new ImageIcon("icons\\edit.gif"));             Name=new JLabel("Notepad");             Version=new JLabel("Version 1.0");             Java=new JLabel("JRE Version 6.0");             Author=new JLabel("Copyright (c) 11-5-2012 By Jianmin Chen");             Panel=new JPanel();             Color c=new Color(0,95,191);             Name.setForeground(c);             Version.setForeground(c);             Java.setForeground(c);             Author.setForeground(c);             Panel.setBackground(Color.white);             OK.setFocusable(false);             this.setBounds(250,200,280, 180);                      this.setResizable(false);             this.setLayout(null);             Panel.setLayout(null);             OK.addActionListener(this);             Icon.setFocusable(false);             Icon.setBorderPainted(false);             Author.setFont(new Font(null,Font.PLAIN,11));             Panel.add(Icon);             Panel.add(Name);             Panel.add(Version);             Panel.add(Author);             Panel.add(Java);             this.add(Panel);             this.add(OK);             Panel.setBounds(0, 0, 280, 100);             OK.setBounds(180, 114, 72, 26);             Name.setBounds(80, 10, 160, 20);             Version.setBounds(80, 27, 160, 20);             Author.setBounds(15, 70, 250, 20);             Java.setBounds(80, 44, 160, 20);             Icon.setBounds(16, 14, 48, 48);         }         public void actionPerformed(ActionEvent e) {             this.setVisible(false);         }     } } //创建记事本 public class ChenJianmin {     public static void main(String[] args){         EventQueue.invokeLater(new Runnable() {             public void run() {                 NotePad notePad=new NotePad();                 notePad.setTitle("记事本");                 notePad.setVisible(true);                 notePad.setBounds(100,100,800,600);                 notePad.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);             }         });     } } <script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script> 阅读(37) | 评论(0) | 转发(0) | 0

上一篇:疯狂Java讲义习题11.3

下一篇:疯狂java讲义习题11.5

相关热门文章 Tomcat 6 配置SSI让Resin支持shtml(SSI)- 静...tomcat + ssiASP JavaScript Lessons(8-14)JDK1.6官方下载_JDK6官方下载_... 给主人留下些什么吧!~~ 评论热议
转载请注明原文地址: https://www.6miu.com/read-58464.html

最新回复(0)