您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
【第18章:图形界面】_文件选择框
发布时间:2021-01-19 14:19:21编辑:雪饮阅读()
使用javax.swing.JfileChooser类可以实例化一个文件选择框
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.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{
//一个8行10列的文本区域
private JTextArea area = new JTextArea(8,10) ;
private JFrame frame = new JFrame("Welcome To kasumi") ;
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.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("confirm") ;
fileChooser.setDialogTitle("open file") ;
//显示文件选择框
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 Hello{
public static void main(String args[]) throws Exception{
new Note() ;
}
};
关键字词:java,文件选择框
上一篇:【第18章:图形界面】_菜单组件
下一篇:【第18章:图形界面】_表格