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();
	}
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值