设置打开或保存文件对话框的文件类型_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 设置打开或保存文件对话框的文件类型

设置打开或保存文件对话框的文件类型

 2013/7/18 0:14:32  qincidong  程序员俱乐部  我要评论(0)
  • 摘要:importjava.awt.FlowLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileWriter;importjava.io.IOException;importjava.util.Vector;importjavax.swing.JButton
  • 标签:文件 对话
class="java">import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Vector;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.LookAndFeel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.filechooser.FileNameExtensionFilter;

/**
 * 1.设置打开或保存文件时弹出的对话框的文件类型选择。
 * 2.外观选择。
 * @author luckystar2008
 */
public class FileSaveExtensionChooser extends JFrame{
	private JButton btn = new JButton("保存文件");
	private JComboBox laf;
	private Vector<SupportedLaF> supportedLookAndFeel = new Vector<SupportedLaF>();
	
	static class SupportedLaF {
		String name;
		LookAndFeel laf;

		SupportedLaF(String name, LookAndFeel laf) {
			this.name = name;
			this.laf = laf;
		}

		public String toString() {
			return name;
		}
	}
	
	public FileSaveExtensionChooser() {
		setSize(300,200);
		setVisible(true);
		setLocationRelativeTo(null);
		setLayout(new FlowLayout());
		add(btn);
		add(new JLabel("选择外观:"));
		setLookAndFeel();
		add(laf);
		setDefaultCloseOperation(DISPOSE_ON_CLOSE);
		btn.addActionListener(new ActionListener() {
			
			public void actionPerformed(ActionEvent arg0) {
				String msg = "Hello World!";
				JFileChooser jfc = new JFileChooser();
				FileNameExtensionFilter fnef = new FileNameExtensionFilter("TXT and INI Files (.txt, .ini)", "txt","ini");
				FileNameExtensionFilter txt = new FileNameExtensionFilter("TXT Files (.txt)", "txt");
				FileNameExtensionFilter ini = new FileNameExtensionFilter("INI Files (.ini)", "ini");
				
				jfc.addChoosableFileFilter(fnef);
				jfc.addChoosableFileFilter(txt);
				jfc.addChoosableFileFilter(ini);
				jfc.setDialogType(JFileChooser.SAVE_DIALOG);
				int res = jfc.showSaveDialog(FileSaveExtensionChooser.this);
				if (res == JFileChooser.APPROVE_OPTION) {
					File file = jfc.getSelectedFile();
					System.out.println(file.getAbsolutePath());
					try {
						BufferedWriter bw = new BufferedWriter(new FileWriter(file));
						bw.write(msg);
						bw.flush();
						bw.close();
						System.out.println("File Save Finished!");
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			}
		});
		
		laf.addActionListener(new ActionListener() {
			
			public void actionPerformed(ActionEvent arg0) {
				SupportedLaF slaf = (SupportedLaF) laf.getSelectedItem();
				try {
					UIManager.setLookAndFeel(slaf.laf);
					System.out.println("Set LookAndFeel To " + slaf.name);
				} catch (UnsupportedLookAndFeelException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		});
		
		pack();
	}
	
	public void setLookAndFeel() {
		UIManager.LookAndFeelInfo[] installedLafs = UIManager
				.getInstalledLookAndFeels();
		for (UIManager.LookAndFeelInfo lafInfo : installedLafs) {
			try {
				Class lnfClass = Class.forName(lafInfo.getClassName());
				LookAndFeel laf = (LookAndFeel) (lnfClass.newInstance());
				if (laf.isSupportedLookAndFeel()) {
					String name = lafInfo.getName();
					supportedLookAndFeel.add(new SupportedLaF(name,laf));
				}
			} catch (Exception e) { 
				continue;
			}
		}
		
		laf = new JComboBox(supportedLookAndFeel);
		laf.setSelectedIndex(0);
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		FileSaveExtensionChooser t2 = new FileSaveExtensionChooser();
	}

}


发表评论
用户名: 匿名