package com.javaxyq.tools;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dialog;
import java.awt.Frame;
import java.awt.HeadlessException;
import java.awt.Window;
import java.io.File;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.filechooser.FileFilter;
public class OpenDialog extends JFileChooser {
private static final long serialVersionUID = 1L;
//private static OpenDialog openDialog=new OpenDialog();
public OpenDialog() {
super();
setMultiSelectionEnabled(true);
}
public int showDialog(Component parent, File dir, String title, FileFilter filter) {
setCurrentDirectory(dir);
setFileFilter(filter);
setDialogTitle(title);
return showOpenDialog(parent);
}
@Override
protected JDialog createDialog(Component parent) throws HeadlessException {
JDialog dialog = super.createDialog(parent);
Container contentPanel = dialog.getContentPane();
// contentPanel.add(getBottomComp(),BorderLayout.SOUTH);
dialog.pack();
dialog.setLocationRelativeTo(parent);
return dialog;
}
/**
* Returns the specified component's toplevel <code>Frame</code> or <code>Dialog</code>.
*
* @param parentComponent the <code>Component</code> to check for a <code>Frame</code> or
* <code>Dialog</code>
* @return the <code>Frame</code> or <code>Dialog</code> that contains the component, or the
* default frame if the component is <code>null</code>, or does not have a valid
* <code>Frame</code> or <code>Dialog</code> parent
* @exception HeadlessException if <code>GraphicsEnvironment.isHeadless</code> returns
* <code>true</code>
* @see java.awt.GraphicsEnvironment#isHeadless
*/
static Window getWindowForComponent(Component parentComponent) throws HeadlessException {
if (parentComponent == null)
return JOptionPane.getRootFrame();
if (parentComponent instanceof Frame || parentComponent instanceof Dialog)
return (Window) parentComponent;
return getWindowForComponent(parentComponent.getParent());
}
}