帮我实现 编辑菜单里的 查找 功能 和 设置里的字体功能  我只加了菜单没具体实现  帮忙解决一下谢谢   代码在附件里   

解决方案 »

  1.   

    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.io.*;
    import java.util.*;//class
    class TextEditorFrame extends JFrame
    {
        File file = null;
        Color color = Color.black;
        GraphicsEnvironment getFont = GraphicsEnvironment.getLocalGraphicsEnvironment();  //GraphicsEnvironment得到系统所允许使用的所有字体
        Font []fonts = getFont.getAllFonts();
    //
        JTextPane text = new JTextPane();
        JFileChooser filechooser = new JFileChooser();   //JFileChooser 为用户选择文件提供了一种简单的机制
        JColorChooser colorchooser = new JColorChooser(); //JColorChooser 提供一个用于允许用户操作和选择颜色的控制器窗格
        JDialog about = new JDialog(this);
        JMenuBar menubar = new JMenuBar();                  //菜单栏的实现
        //主窗体初始化
        TextEditorFrame()
        {
            initTextPane();    //面板
            initMenu();       //菜单 
            initAboutDialog();//关于对话框
            initToolBar();    //工具栏    }
        //面板初始化
        void initTextPane()
        {
          setFont(new Font("Times New Roman",Font.PLAIN,12));
          getContentPane().add( new JScrollPane(text));
        }  //---------------------------------------------------------------------------
      //菜单的定义      用数组来定义
        //super Menue
        JMenu [] menus= new JMenu[]
        {
            new JMenu("文件"),
            new JMenu("编辑"),
            new JMenu("设置"),
            new JMenu("工具"),
            new JMenu("帮助")
        };    //sub Menue
        JMenuItem menuitems [][] =new JMenuItem[][]
        {
            {
                new JMenuItem("新建"),
                new JMenuItem("打开..."),
                new JMenuItem("保存..."),
                new JMenuItem("退出")
            },
            {
                new JMenuItem("复制"),
                new JMenuItem("剪切"),
                new JMenuItem("粘贴"),
                new JMenuItem("选择全部"),
                new JMenuItem("查找")
              
            },
    {   new JMenuItem("字体"),
            
                new JMenuItem("颜色")
              
        },
        
        { new JMenuItem("MS 记事本")
        },
        
        
            {
                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("新建")){
                 Date date=new Date();
                    text.setText(date.toString());
                    
                    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("退出")){
                        System.exit(0);
                    }else if(id.equals("复制")){
                        text.copy();
                    }else if(id.equals("剪切")){
                        text.cut();
                    }else if(id.equals("粘贴")){
                        text.paste();
                    }else if(id.equals("选择全部")){
                        text.selectAll();
                    }else if(id.equals("颜色")){
                        color = JColorChooser.showDialog(TextEditorFrame.this,"",color);
                        text.setForeground(color);
    }else if(id.equals("MS 记事本")){
    try{
          String command = "notepad.exe";
          Process child = Runtime.getRuntime().exec(command);
          //ecec()方法返回一个Process对象,可以使用这个对象控制Java程序与新运行的进程进行交互
              //ecec()方法启动windows的记事本notepad
         }
         catch (IOException ex)
         {
                             }
                    }else if(id.equals("关于")){
                        about.setSize(550,300);
                        about.show();
                    }            }
            };
      

  2.   

    //打开文件
        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 saveFile()
          {
              try{
                  FileWriter fw = new FileWriter(file);
                  fw.write(text.getText());
                  fw.close();
              }
              catch(Exception e)
              {
                  e.printStackTrace();
              }
          }
     //---------------------------------------------------------------  
        
          
    //--------------------------------------------------------------
    //关于对话框
        void initAboutDialog()
        {        about.setTitle("关于... ");
            about.getContentPane().setBackground(Color.green );
            about.getContentPane().add(new JLabel("本程序实现一个文本编辑器,功能和XP系统自带的记事本基本一样,多出了工具栏等一些东西!"));
            about.setModal(true);    }
    //---------------------------------------------------------------
        //#########################################
        JToolBar toolbar = new JToolBar();
        JButton [] buttons = new JButton[]
        {
            new JButton("copy"),        new JButton("cut"),        new JButton("paste"), new JButton("Note")
        };
        //#############################################
    //-------------------------------------------------------------------------------------------------------------------
    //工具栏
        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();
                }
               });     buttons[3].setToolTipText("MS 记事本");
        buttons[3].addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
                       try{
              String command = "notepad.exe";
              Process child = Runtime.getRuntime().exec(command);
             
             }
             catch (IOException ex)
             {
                             }
                   }
               });         this.getContentPane().add(toolbar,BorderLayout.NORTH);       }  }
    //-----------------------------------------------------------------------------------------------------
    //入口函数
     public class TextEditor
    {  public static void main( String [] args){    TextEditorFrame f = new TextEditorFrame();    
        f.setTitle("简单文本编辑器 ");
        f.setSize(600,500);
        f.show();  }
    }
     
     
     
      

  3.   

    1、查找好说,看我的博客就能知道了。2、Java本身并没有字体设置组件,你需要从网上下一FontDialog,加到自己的代码里,一般FontDialog都会返回一个 Font ,那么调用textPane.setFont(font)就可以了