java 学习 ——文本编辑框小程序
简易的文本编辑框小程序:
import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; class TextEditorFrame extends JFrame{ File file=null; Color color=Color.red; TextEditorFrame(){ initTextPane(); initAboutDialog(); initToolBar(); initMenu(); } void initTextPane(){ getContentPane().add(new JScrollPane(text)); } JTextPane text=new JTextPane(); //这是用来做文本框的 JFileChooser filechooser=new JFileChooser(); //文件选择框 JColorChooser colorchooser=new JColorChooser();// JDialog about=new JDialog(this); //关于对话框 JMenuBar menubar=new JMenuBar();//菜单 JMenu[] menus=new JMenu[]{ new JMenu("文件"), new JMenu("编辑"), new JMenu("帮助") }; JMenuItem menuitems[][]=new JMenuItem[][]{{ new JMenuItem("新建"), new JMenuItem("打开"), new JMenuItem("保存"), new JMenuItem("退出") }, { new JMenuItem("复制"), new JMenuItem("剪切"), new JMenuItem("粘贴"), }, { new JMenuItem("关于") } }; void initMenu(){ for(int i=0;i<menus.length;i++){ menubar.add(menus[i]); for(int j=0;j<menuitems[i].length;j++){ menus[i].add(menuitems[i][j]); menuitems[i][j].addActionListener( action ); } } this.setJMenuBar(menubar); } ActionListener action=new ActionListener(){ public void actionPerformed(ActionEvent e){ JMenuItem mi=(JMenuItem)e.getSource(); String id=mi.getText(); if(id.equals("新建")){ text.setText(""); file=null; }else if(id.equals("打开")){ if(file !=null)filechooser.setSelectedFile(file); int returnVal=filechooser.showOpenDialog(TextEditorFrame.this); if(returnVal==JFileChooser.APPROVE_OPTION){ file=filechooser.getSelectedFile(); openFile(); } }else if(id.equals("保存")){ if(file!=null) filechooser.setSelectedFile(file); int returnVal=filechooser.showSaveDialog(TextEditorFrame.this); if(returnVal==JFileChooser.APPROVE_OPTION){ file=filechooser.getSelectedFile(); saveFile(); } }else if(id.equals("退出")){ TextEditorFrame f=new TextEditorFrame(); int s=JOptionPane.showConfirmDialog(f,"你真的要退出吗","退出程序",JOptionPane.YES_NO_CANCEL_OPTION); if(s==JOptionPane.YES_OPTION) System.exit(0); }else if(id.equals("剪切")){ text.cut(); }else if(id.equals("复制")){ text.copy(); }else if(id.equals("粘贴")){ text.paste(); }else if(id.equals("关于")){ about.setSize(300,250); about.show(); } } }; void saveFile(){ try{ FileWriter fw=new FileWriter(file); fw.write(text.getText()); fw.close(); } catch(Exception e){ e.printStackTrace(); } } void openFile(){ try{ FileReader fr=new FileReader(file); int len=(int)file.length(); char []buffer=new char[len]; fr.read(buffer,0,len); fr.close(); text.setText(new String(buffer)); } catch(Exception e){ e.printStackTrace(); } } void initAboutDialog(){ about.getContentPane().add(new JLabel("You have been making great progress.")); about.setModal(true); } JToolBar toolbar=new JToolBar();//我来加上工具条 JButton [] buttons=new JButton[]{ new JButton("", new ImageIcon("qin.jpg")), new JButton("", new ImageIcon("shu.jpg")), new JButton("", new ImageIcon("xin.jpg")) }; void initToolBar(){ for(int i=0;i<buttons.length;i++) toolbar.add(buttons[i]); buttons[0].setToolTipText("复制"); buttons[0].addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ text.copy(); } }); buttons[1].setToolTipText("剪切"); buttons[1].addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ text.cut(); } }); buttons[2].setToolTipText("粘贴"); buttons[2].addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ text.paste(); } }); this.getContentPane().add(toolbar,BorderLayout.NORTH); } } public class F{ public static void main(String args[]){ TextEditorFrame f=new TextEditorFrame(); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ TextEditorFrame f=new TextEditorFrame(); int s=JOptionPane.showConfirmDialog(f,"你真的要退出吗","退出程序",JOptionPane.YES_NO_OPTION); if(s==JOptionPane.YES_OPTION) System.exit(0);} }); f.setTitle("TextEditor"); f.setSize(800,600); f.show(); } }