filechooserdemo.java

来自「java课件 java课件 java课件 java课件」· Java 代码 · 共 106 行

JAVA
106
字号
import java.awt.*;
import java.io.*;
import java.awt.event.*;
import javax.swing.*;

public class FileChooserDemo extends JFrame implements ActionListener{
  private JMenuItem jmiOpen,jmiSave,jmiExit,jmiAbout;
  private JTextArea jta = new JTextArea ();
  private JLabel jlbStatus = new JLabel();
  private JFileChooser chooser=new JFileChooser();
  
  public FileChooserDemo(){
    setTitle("Test JFileChooser");
    JMenuBar mb = new JMenuBar();
    setJMenuBar(mb);
    
    JMenu fileMenu = new JMenu("File"),
          helpMenu = new JMenu("Help");
    
    mb.add(fileMenu);
    mb.add(helpMenu);
    
    fileMenu.add(jmiOpen =  new JMenuItem("Open"));
    fileMenu.add(jmiSave = new JMenuItem("Save"));
    fileMenu.addSeparator();
    fileMenu.add(jmiExit = new JMenuItem("Exit"));
    
    helpMenu.add(jmiAbout = new JMenuItem("About"));
    
    chooser.setCurrentDirectory(new File("."));
    
    getContentPane().add(new JScrollPane(jta),BorderLayout.CENTER);
    getContentPane().add(jlbStatus,BorderLayout.SOUTH);
    
    jmiOpen.addActionListener(this);
    jmiSave.addActionListener(this);
    jmiAbout.addActionListener(this);
    jmiExit.addActionListener(this);
    
    setSize(300,200);
    setVisible(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
  
  public void actionPerformed(ActionEvent e){
  	String command=e.getActionCommand();
  	
  	if(e.getSource() instanceof JMenuItem){
  	  if(command.equals("Open"))
  	    open();	
  	  else if(command.equals("Save"))  
  	    save();
  	  else if(command.equals("About"))  
  	    JOptionPane.showMessageDialog(this,
  	    	"Demonstrate Using File Dialog",
  	    	"About this Demo",
  	    	JOptionPane.INFORMATION_MESSAGE	);
  	  else if(command.equals("Exit"))
  	     System.exit(0);
  	}
  	
  }
  
  private void open(){
  	if(chooser.showOpenDialog(this)==JFileChooser.APPROVE_OPTION){
  		File file = chooser.getSelectedFile();
  		try{
  		  BufferedInputStream in=new BufferedInputStream(
  		  	  new FileInputStream(file));
  		  byte[] b=new byte[in.available()];
  		  in.read(b,0,b.length);
  		  jta.append(new String(b,0,b.length));
  		  in.close();
  		  jlbStatus.setText(file.getName()+" Opened");	  	
  		}catch(IOException ex){
  		  jlbStatus.setText("Error opening "+file.getName());	  		
  		}
   	} 		
  }
  
  private void save(){
  if(chooser.showSaveDialog(this)==JFileChooser.APPROVE_OPTION){
  		File file = chooser.getSelectedFile();
  		try{
  		  BufferedOutputStream out=new BufferedOutputStream(
  		  	  new FileOutputStream(file));
  		  byte[] b=(jta.getText()).getBytes();
  		  out.write(b,0,b.length);
  		  out.close();
  		  jlbStatus.setText(file.getName()+" Saved");	  	
  		}catch(IOException ex){
  		  jlbStatus.setText("Error saving "+file.getName());	  		
  		}
   	}
  }

  public static void main(String args[]){
  	try{
 	 UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
     //UIManager.setLookAndFeel(
     //   UIManager.getCrossPlatformLookAndFeelClassName());
    }catch(Exception e){}
    JFrame frame = new FileChooserDemo();
  }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?