zoukankan      html  css  js  c++  java
  • 吴裕雄--天生自然JAVA图形界面编程学习笔记:文件选择框

    import java.io.File ;
    import java.io.FileInputStream ;
    import java.io.FileOutputStream ;
    import java.io.PrintStream ;
    import java.util.Scanner ;
    import java.awt.BorderLayout ;
    import java.awt.event.WindowAdapter ;
    import java.awt.event.WindowEvent ;
    import java.awt.event.ActionEvent ;
    import java.awt.event.ActionListener ;
    import javax.swing.JFrame  ;
    import javax.swing.JTextArea ;
    import javax.swing.JLabel ;
    import javax.swing.JButton ;
    import javax.swing.JPanel ;
    import javax.swing.JFileChooser ;
    import javax.swing.JScrollPane ;
    class Note implements ActionListener{
    	private JTextArea area = new JTextArea(8,10) ;	// 定义文本区
    	private JFrame frame = new JFrame("Welcome To MLDN") ;
    	private JButton open = new JButton("打开文件") ;
    	private JButton save = new JButton("保存文件") ;
    	private JLabel label = new JLabel("现在没有打开的文件") ;
    	private JPanel butPan = new JPanel() ;
    	public Note(){
    		this.butPan.add(open) ;	// 在面板中加入按钮
    		this.butPan.add(save) ;	// 在面板中加入按钮
    		this.frame.setLayout(new BorderLayout(3,3)) ;
    		this.frame.add(this.label,BorderLayout.NORTH) ;
    		this.frame.add(this.butPan,BorderLayout.SOUTH) ;
    		this.frame.add(new JScrollPane(this.area),BorderLayout.CENTER) ;
    		this.frame.setSize(330,180) ;
    		this.frame.setVisible(true) ;
    		this.frame.addWindowListener(
    			new WindowAdapter()	{
    				public void windowClosing(WindowEvent e){
    					System.exit(1) ;
    				}
    			}
    		) ;
    		this.open.addActionListener(this) ;
    		this.save.addActionListener(this) ;
    	}
    	public void actionPerformed(ActionEvent e){
    		File file = null ;	// 接收文件
    		int result = 0 ;	// 接收操作状态
    		JFileChooser fileChooser = new JFileChooser() ;	// 文件选择框
    		if(e.getSource()==this.open){	// 表示执行的是打开操作
    			this.area.setText("") ;	// 打开将文字区域的内容清空
    			fileChooser.setApproveButtonText("确定") ;
    			fileChooser.setDialogTitle("打开文件") ;
    			result = fileChooser.showOpenDialog(this.frame) ;
    			if(result==JFileChooser.APPROVE_OPTION){	// 选择的是确定按钮
    				file = fileChooser.getSelectedFile() ;	// 得到选择的文件
    				this.label.setText("打开的文件名称为:" + file.getName()) ;
    			}else if(result==JFileChooser.CANCEL_OPTION){
    				this.label.setText("没有选择任何文件") ;
    			}else{
    				this.label.setText("操作出现错误") ;
    			}
    			if(file!=null){
    				try{
    					Scanner scan = new Scanner(new FileInputStream(file)) ;
    					scan.useDelimiter("
    ") ;
    					while(scan.hasNext()){
    						this.area.append(scan.next()) ;
    						this.area.append("
    ") ;
    					}
    					scan.close() ;
    				}catch(Exception e1){}
    			}
    		}
    		if(e.getSource()==this.save){	// 判断是否是保存操作
    			result = fileChooser.showSaveDialog(this.frame) ;	// 显示保存框
    			if(result==JFileChooser.APPROVE_OPTION){	// 选择的是确定按钮
    				file = fileChooser.getSelectedFile() ;	// 得到选择的文件
    				this.label.setText("选择的存储文件名称为:" + file.getName()) ;
    			}else if(result==JFileChooser.CANCEL_OPTION){
    				this.label.setText("没有选择任何文件") ;
    			}else{
    				this.label.setText("操作出现错误") ;
    			}
    			if(file!=null){
    				try{
    					PrintStream out = new PrintStream(new FileOutputStream(file)) ;
    					out.print(this.area.getText()) ;
    					out.close() ;
    				}catch(Exception e1){}
    			}
    		}
    	}
    }
    
    public class JFileChooserDemo{
    	public static void main(String args[]){
    		new Note() ;
    	}
    }
    

      

  • 相关阅读:
    LintCode Python 简单级题目 488.快乐数
    LintCode Python 简单级题目 100.删除排序数组中的重复数字 101.删除排序数组中的重复数字II
    LintCode Python 简单级题目 373.奇偶分割数组
    LintCode Python 简单级题目 39.恢复旋转排序数组
    LintCode Python 简单级题目 35.翻转链表
    LintCode Python 简单级题目 451.两两交换链表中的节点
    LintCode Python 简单级题目 174.删除链表中倒数第n个节点
    aws查看官方centos镜像imageid
    linux shell脚本查找重复行/查找非重复行/去除重复行/重复行统计
    php配置优化-生产环境应用版
  • 原文地址:https://www.cnblogs.com/tszr/p/12398947.html
Copyright © 2011-2022 走看看