Chinaunix首页 | 论坛 | 博客
  • 博客访问: 43731
  • 博文数量: 24
  • 博客积分: 920
  • 博客等级: 准尉
  • 技术积分: 235
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-05 11:10
文章分类
文章存档

2011年(1)

2010年(3)

2009年(20)

我的朋友
最近访客

分类: Java

2010-03-15 20:57:27

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
class TextEditorFrame extends JFrame
{
    File file=null;
    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("帮助")
    };
    JMenuItem menuitems[][]=new JMenuItem[][]{
  {//下拉菜单
   new JMenuItem("新建"),
   new JMenuItem("打开"),
   new JMenuItem("保存"),
   new JMenuItem("退出")
        },          
    { new JMenuItem("关于我们")
        }
    };
    //构造函数
  TextEditorFrame(){
     initTextPane();
     initMenu();
     initAboutDialog();
  }
   
  void initTextPane()
  {
     getContentPane().add(new JScrollPane(text));
  }            
  void initMenu()
  {//对菜单栏进行初始化
       for(int i=0;i       {
           menubar.add(menus[i]);
           for(int j=0;j           {
             menus[i].add(menuitems[i][j]);
             menuitems[i][j].addActionListener( action );//响应时事件
           }
       }
       this.setJMenuBar(menubar);
  }
  void initAboutDialog()
  {
       about.getContentPane().add(new JLabel(" 联系作者:1234567890"));
       about.setModal(true);
       about.setSize(300,300);
  }
   //事件处理
  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("关于我们")){
                about.setSize(400,150);
                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();
            }
  }
 
}
       
class Test
{
 public static void main(String args[]){
  TextEditorFrame f=new TextEditorFrame();            
  f.setTitle("记事本");
  f.setSize(800,600);
  f.show();
  }
}
阅读(566) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~