25---AWT和Swing(12)文件选择框(视频代码)

 

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("\n") ;
     while(scan.hasNext()){
      this.area.append(scan.next()) ;
      this.area.append("\n") ;
     }
     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() ;
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值