Chinaunix首页 | 论坛 | 博客
  • 博客访问: 189403
  • 博文数量: 92
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1413
  • 用 户 组: 普通用户
  • 注册时间: 2013-02-04 21:12
文章分类
文章存档

2013年(92)

我的朋友

分类: 信息化

2013-03-04 14:43:23

[代码] [Java]代码 import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
public class Nodepad extends JFrame
{
    private JTextArea editor;
    private Container c;
    private Font f=new Font("sanserif",Font.PLAIN,12);
    //菜单栏成员特点声明
    private JMenuBar mb;        //菜单棒
    private JMenu fileMenu;     //文件菜单
    private JMenu editMenu;     //修改菜单
    private JMenu formatMenu;   //格局菜单
    private JMenuItem fileMenuOpen,fileMenuSave,fileMenuExit;   //文件菜单的菜单项
    private JMenuItem editMenuCopy,editMenuCut,editMenuPaste;   //修改菜单的菜单项
    private JMenu formatSet;//格局菜单榜首级菜单
    private JMenuItem lineWrap,cancleLineWrap,wrapStyleWord,cancleWrapStyleWord;//格局菜单的第二级菜单
 
    //东西栏成员特点声明
    private JToolBar toolBar;   //东西棒
    private JButton b1,b2,b3,b4,b5; //声明5个按钮,分别为:“翻开”、“保管”、“仿制”、“剪切”、“张贴”
     
    //弹出式菜单特点声明
    private JPopupMenu pm;
    private JMenuItem item1,item2,item3,item4,item5;
 
 
 
    public Nodepad()
    {
        super("简略记事本");
        setSize(400,300);
     
        try{
            UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (Exception e){ System.err.println("不能被设置外观的缘由:" e);}
         
 
 
        c=getContentPane();         //创立一个内容面板
        editor = new JTextArea();   //创立一个文本区
        c.add(new JScrollPane(editor)); //设置滚动条,并增加到内容面板
 
        //菜单栏的完成
        //文件菜单的完成
        mb = new JMenuBar();    //创立菜单棒
        fileMenu = new JMenu("文件(F)");//创立菜单
        fileMenuOpen = new JMenuItem("翻开(O)...Ctrl O");
        fileMenuSave = new JMenuItem("保管(S)...Ctrl S");
        fileMenuExit = new JMenuItem("退出");
        JMHandler JM=new JMHandler();       //创立监听器
        fileMenuOpen.addActionListener(JM); //注册监听器
        fileMenuSave.addActionListener(JM);
        fileMenuExit.addActionListener(JM);
        fileMenu.add(fileMenuOpen);
        fileMenu.add(fileMenuSave);
        fileMenu.addSeparator();    //增加分隔线
        fileMenu.add(fileMenuExit);
        fileMenu.setFont(f);        //设置菜单中文体的字体
 
         
        //修改菜单的完成
        editMenu = new JMenu("修改(E)");
        editMenuCopy = new JMenuItem("仿制(C) Ctrl C");
        editMenuCut = new JMenuItem("剪切(T) Ctrl X");
        editMenuPaste = new JMenuItem("张贴(P) Ctrl v");
        EMHandler EM=new EMHandler();   //创立监听器
        editMenuCopy.addActionListener(EM);//注册监听器
        editMenuCut.addActionListener(EM);
        editMenuPaste.addActionListener(EM);
        editMenu.add(editMenuCopy);
        editMenu.add(editMenuCut);
        editMenu.add(editMenuPaste);
        editMenu.setFont(f);
 
 
        //格局菜单的完成
        formatMenu = new JMenu("格局(O)");            //创立菜单
        formatSet = new JMenu("格局设置");          //二级菜单
        lineWrap = new JMenuItem("主动换行");       //二级菜单项
        cancleLineWrap = new JMenuItem("撤销主动换行");
        wrapStyleWord = new JMenuItem("断行不断字");
        cancleWrapStyleWord = new JMenuItem("撤销断行不断字");
        FMHandler FM=new FMHandler();               //创立事情监听器
        lineWrap.addActionListener(FM);             //注册二级菜单项的监听器
        cancleLineWrap.addActionListener(FM);
        wrapStyleWord.addActionListener(FM);
        cancleWrapStyleWord.addActionListener(FM);
        formatSet.add(lineWrap);
        formatSet.add(cancleLineWrap);
        formatSet.addSeparator();   //增加分隔线
        formatSet.add(wrapStyleWord);
        formatSet.add(cancleWrapStyleWord);
        formatMenu.add(formatSet);
        formatMenu.setFont(f);
 
 
        //将菜单悉数增加菜单棒里
        mb.add(fileMenu);
        mb.add(editMenu);
        mb.add(formatMenu);
 
        //东西栏的完成
        //按钮分别为:“翻开”、“保管”、“仿制”、“剪切”、“张贴”
        toolBar =new JToolBar();    //创立东西棒
        b1= new JButton(new ImageIcon("img/open.gif"));
        b2= new JButton(new ImageIcon("img/save.gif"));
        b3= new JButton(new ImageIcon("img/copy.gif"));
        b4= new JButton(new ImageIcon("img/cut.gif"));
        b5= new JButton(new ImageIcon("img/paste.gif"));
        TBHandler TB=new TBHandler();       //创立按钮监听器
        b1.addActionListener(TB);   b2.addActionListener(TB);
        b3.addActionListener(TB);   b4.addActionListener(TB);
        b5.addActionListener(TB);
        //把按钮悉数增加到东西棒中
        toolBar.add(b1);    toolBar.add(b2);
        toolBar.add(b3);    toolBar.add(b4);
        toolBar.add(b5);
 
 
        //弹出菜单的完成
        pm =new JPopupMenu();   //创立弹出菜单
        item1 = new JMenuItem("翻开");
        item2 = new JMenuItem("保管");
        item3 = new JMenuItem("仿制");
        item4 = new JMenuItem("剪切");
        item5 = new JMenuItem("张贴");
        JPHandler JP=new JPHandler();
        item1.addActionListener(JP);  //注册菜单项的鼠标事情监听器
        item2.addActionListener(JP);
        item3.addActionListener(JP);
        item4.addActionListener(JP);
        item5.addActionListener(JP);
        editor.addMouseListener(JP);  //注册文本区的鼠标事情监听器
        pm.add(item1);  pm.add(item2);
        pm.add(item3);  pm.add(item4);
        pm.add(item5);
 
 
 
 
 
         
        //把菜单栏、东西栏、弹出菜单增加到内容面板
        setJMenuBar(mb);        //显现菜单栏
        c.add(toolBar,BorderLayout.NORTH);
         
 
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
 
 
 
    /*自定义类完成文件菜单项的事情处置*/
    private class JMHandler implements ActionListener
    {  
        public void actionPerformed(ActionEvent e)
        {
            if(e.getSource()==fileMenuOpen){ loadFile(); }
            else if(e.getSource()==fileMenuSave){ saveFile(); }
            else{System.exit(0);}
        }
 
    }
 
    public void loadFile()  //翻开文件办法
    {
        JFileChooser fc=new JFileChooser();
        int r=fc.showOpenDialog(this);
        if(r==JFileChooser.APPROVE_OPTION)
        {
            File file=fc.getSelectedFile();
            try{ editor.read(new FileReader(file),null);}
            catch(IOException e){}
        }
    }
         
    public void saveFile()  /*保管文件的办法*/
    {
        JFileChooser fc=new JFileChooser();
        int r=fc.showSaveDialog(this);
        if(r==JFileChooser.APPROVE_OPTION)
        {
            File file=fc.getSelectedFile();
            try{ editor.write(new FileWriter(file));}
            catch(IOException e){}
        }
    }
 
     
    //修改菜单菜单项的事情处置
    private class EMHandler implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
            if(e.getSource()==editMenuCopy)     //完成仿制功用
            {
                editor.copy();
                editor.requestFocus();
            }
            else if(e.getSource()==editMenuCut)//完成剪切功用
            {
                editor.cut();
                editor.requestFocus();
            }
            else                                //完成张贴功用
            {
                editor.paste();
                editor.requestFocus();
            }
        }
    }
    //格局菜单二级菜单的菜单项的事情处置
    private class FMHandler implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
            if(e.getSource()==lineWrap){ editor.setLineWrap(true); }
            else if(e.getSource()==cancleLineWrap) { editor.setLineWrap(false);}
            else if(e.getSource()==wrapStyleWord) { editor.setWrapStyleWord(true);}
            else{ editor.setWrapStyleWord(false); }
        }
    }
 
 
    //自定义类完成东西栏的按钮事情处置
    private class TBHandler implements ActionListener
    {
        public void actionPerformed(ActionEvent e)
        {
            if(e.getSource()==b1){ loadFile(); }        //完成翻开文件功用
            else if(e.getSource()==b2) {saveFile();}    //完成保管文件功用
            else if(e.getSource()==b3)  //文件仿制
            {
                editor.copy();
                editor.requestFocus();
            }
            else if(e.getSource()==b4) //文件剪切
            {
                editor.cut();
                editor.requestFocus();
            }
            else                        //文件张贴
            {
                editor.paste();
                editor.requestFocus();
            }
        }
    }
 
    //自定义类完成弹出式菜单的事情处置
    private class JPHandler implements ActionListener,MouseListener
    {
        public void actionPerformed(ActionEvent e)
        {
            if(e.getSource()==item1){ loadFile(); }     //完成翻开文件功用
            else if(e.getSource()==item2) {saveFile();} //完成保管文件功用
            else if(e.getSource()==item3)   //文件仿制
            {
                editor.copy();
                editor.requestFocus();
            }
            else if(e.getSource()==item4) //文件剪切
            {
                editor.cut();
                editor.requestFocus();
            }
            else                        //文件张贴
            {
                editor.paste();
                editor.requestFocus();
            }
        }
 
        public void mouseReleased(MouseEvent e)
        {
            if(e.isPopupTrigger())                  //判别能否按下鼠标右键
                pm.show(editor,e.getX(),e.getY());  //显现弹出式菜单
        }
 
        public void mouseClicked(MouseEvent e){}
        public void mouseEntered(MouseEvent e){}
        public void mouseExited(MouseEvent e){}
        public void mousePressed(MouseEvent e){}
    }
 
     
 
    public static void main(String []args)
    {
        Nodepad N=new Nodepad();
    }
         
}
阅读(678) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~