点击(此处)折叠或打开
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官方下载_... 给主人留下些什么吧!~~ 评论热议