用 int result = file.showOpenDialog(null); 返回值 JFileChooser.APPROVE_OPTION是选了打开。 else 按了取消。完整例子。import javax.swing.JFileChooser;public class FileChooserTest { public static void main(String[] args) { // 首先是创建JFileChooser 对象,里面带个参数,表示默认打开的目录,这里是默认打开当前文件所在的目录。 JFileChooser file = new JFileChooser("."); /* * 使用showOpenDialog()方法,显示出打开选择文件的窗口,当选择了某个文件后,或者关闭此窗口那么都会返回一个 * * 整型数值,如果返回的是0,代表已经选择了某个文件。如果返回1代表选择了取消按钮或者直接关闭了窗口 */ int result = file.showOpenDialog(null); // JFileChooser.APPROVE_OPTION是个整型常量,代表0。就是说当返回0的值我们才执行相关操作,否则什么也不做。 if (result == JFileChooser.APPROVE_OPTION) { // 获得你选择的文件绝对路径。并输出。当然,我们获得这个路径后还可以做很多的事。 String path = file.getSelectedFile().getAbsolutePath(); System.out.println(path); } else { System.out.println("你已取消并关闭了窗口!"); } } }希望楼主看了上面的解释一定明白。
补充上面写null的地方,应该是这个文件选择Dialog的Parent。
button.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) {
JFileChooser fc = new JFileChooser(); fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); fc.setDialogTitle("请选择所在文件夹"); int value = fc.showOpenDialog(null); if (value == JFileChooser.APPROVE_OPTION) { ... } else { JOptionPane.showConfirmDialog(null, "打开文件夹失败"); } } });
int result = file.showOpenDialog(null);
返回值
JFileChooser.APPROVE_OPTION是选了打开。
else 按了取消。完整例子。import javax.swing.JFileChooser;public class FileChooserTest { public static void main(String[] args) { // 首先是创建JFileChooser 对象,里面带个参数,表示默认打开的目录,这里是默认打开当前文件所在的目录。
JFileChooser file = new JFileChooser("."); /*
* 使用showOpenDialog()方法,显示出打开选择文件的窗口,当选择了某个文件后,或者关闭此窗口那么都会返回一个
*
* 整型数值,如果返回的是0,代表已经选择了某个文件。如果返回1代表选择了取消按钮或者直接关闭了窗口
*/
int result = file.showOpenDialog(null); // JFileChooser.APPROVE_OPTION是个整型常量,代表0。就是说当返回0的值我们才执行相关操作,否则什么也不做。
if (result == JFileChooser.APPROVE_OPTION) { // 获得你选择的文件绝对路径。并输出。当然,我们获得这个路径后还可以做很多的事。
String path = file.getSelectedFile().getAbsolutePath();
System.out.println(path);
} else { System.out.println("你已取消并关闭了窗口!");
}
}
}希望楼主看了上面的解释一定明白。
button.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent e)
{
JFileChooser fc = new JFileChooser(); fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); fc.setDialogTitle("请选择所在文件夹"); int value = fc.showOpenDialog(null); if (value == JFileChooser.APPROVE_OPTION)
{
... } else
{ JOptionPane.showConfirmDialog(null, "打开文件夹失败"); } }
});
你的button是浏览按钮吧,了浏览会弹出一个JDialog,这个JDialog可以让你选择文件路径,选好文件路径,点击下面打开按钮,我想取得这个打开按钮,并在其上添加监听,不知道这样描述的清不清楚。
JFileChooser.addActionListener()
file.addActionListener(new AbstractAction() {
public void actionPerformed(ActionEvent evt) {
if (JFileChooser.APPROVE_SELECTION.equals(evt
.getActionCommand())) {
System.out.println("按了打开");
} else if (JFileChooser.CANCEL_SELECTION.equals(evt
.getActionCommand())) {
System.out.println("按了取消");
}
}
});
注意上面的代码,当没有选择文件按打开时没有效果。
1)选了文件按打开有效果。
2)按了取消有效果。
这个需求有点强迫用户,宁可是关闭窗口后不能下一步,也不应该是强行要求选择文件。当然,如果你非要强迫用户选择文件的话,可以用自己的类继承JFileChooser,然后重写 approveSelection(),这有详细的例子:
http://61party.iteye.com/blog/1024115
public void approveSelection(){
File file = getSelectedFile();
if(!validateFileName(file.getName())) { // 检测不通过则提示警告
JOptionPane.showMessageDialog(getParent(),"Invalidfilenameorpath.","WARNING",JOptionPane.WARNING_MESSAGE);
return;
}
super.approveSelection(); // 正常关闭对话框并返回
}