一个java Swing的问题:为什么JFileChooser出现几秒钟后就会自动关闭?怎样才能让它不关闭?请指教!

每次JFileChooser出现,我想选择某个文件时,它就已经关闭了,无奈!应该怎样改正呢?我编写的代码如下:packagemyswing;importjavax.swi... 每次JFileChooser出现,我想选择某个文件时,它就已经关闭了,无奈!应该怎样改正呢?
我编写的代码如下:
package myswing;
import javax.swing.*;

import java.awt.event.*;
import java.awt.*;
public class Filechooser
{
public static void main(String args[])
{
final JFrame jf=new JFrame("打开文件对话框");
JButton but=new JButton("打开文件对话框");
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setLayout(null);
jf.setBounds(100,100,300,300);
jf.add(but);
but.setBounds(50,150,150,30);
jf.setVisible(true);
but.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
JFileChooser filechooser=new JFileChooser();
filechooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
filechooser.showOpenDialog(filechooser);

String fileName = filechooser.getSelectedFile().getAbsolutePath(); // 得到选择文件或目录的绝对路径
System.out.println(fileName);
}
});
}
}
展开
 我来答
K导航
2012-03-21 · 超过11用户采纳过TA的回答
知道答主
回答量:27
采纳率:0%
帮助的人:12.8万
展开全部

你的有问题,addActionListener没有声明,需要包import java.awt.event.ActionEvent;

1.7.0中重写需要加  @Override

以下是刚在我电脑上的实现,包名为todo,类名为tohelp:

package todo;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.*;

public class tohelp {

public static void main(String args[])

   {

  final JFrame jf=new JFrame("打开文件对话框");

  JButton but=new JButton("打开文件对话框");

  jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  jf.setLayout(null);

  jf.setBounds(100,100,300,300);

  jf.add(but);

  but.setBounds(50,150,150,30);

  jf.setVisible(true);

  but.addActionListener(new ActionListener()

  {

  @Override

public void actionPerformed(ActionEvent e)

{

  JFileChooser filechooser=new JFileChooser();

  filechooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);

  filechooser.showOpenDialog(filechooser);

  String fileName = filechooser.getSelectedFile().getAbsolutePath(); // 得到选择文件或目录的绝对路径

  System.out.println(fileName);

}

  });

   }

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Andvar
2012-03-21 · TA获得超过155个赞
知道答主
回答量:30
采纳率:0%
帮助的人:23.5万
展开全部
int ret=filechooser.showOpenDialog(filechooser);
if(ret== JFileChooser.APPROVE_OPTION)
{
String fileName = filechooser.getSelectedFile().getAbsolutePath(); // 得到选择
}

还有就是创建文件选择框组件比较耗费系统资源,一般定义为一个成语变量来共用,而不是每次创建一个选择对话框对象。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友845f74e61
2012-03-21 · TA获得超过6929个赞
知道大有可为答主
回答量:4050
采纳率:50%
帮助的人:1621万
展开全部
没有什么问题啊,在我这里不会自动关闭。
追问
你试一下在选择器显示几秒钟后都不操作,它就会关闭的
追答
我试了,就是不关闭才问你的,我这里不出现你说的现象,我也选择文件什么的了,怎么操作都不会关闭。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式