当前位置: 首页 > 知识库问答 >
问题:

Java/Swing:为什么我的JFileChooser打开了两次?

章绪
2023-03-14
public class PathBrowser {
public static String filepath = null;
public static void main(String[] args)
{

    JButton select = new JButton();
    JFileChooser browse = new JFileChooser();
    //add the icon of main form for JFileChooser
    //OPENS TWICE?! Error
    browse.showOpenDialog(MainForm.frame);

    //if blank goes to user/documents. Unsure about other OSes
    browse.setCurrentDirectory(new java.io.File("C:/"));
    browse.setDialogTitle("Browse Folder");
    browse.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
    //when clicked open (approve option)
    if (browse.showOpenDialog(select) == JFileChooser.APPROVE_OPTION){
        //folder has peen selected
        MainForm.selfolder = true;
        //add the path to the string filepath
        filepath = (browse.getSelectedFile().getAbsolutePath());
        System.out.println("The path for the server is: "+browse.getSelectedFile().getAbsolutePath());
        //add the information to the textarea
        MainForm.textArea.setText("The path for the server is: "+browse.getSelectedFile().getAbsolutePath());
    }

}

}

谢谢

共有1个答案

骆鸿运
2023-03-14

您正在两次调用Browse.showOpenDialog,这就是为什么您会得到两次它。

只需删除这一行:

browse.showOpenDialog(MainForm.frame);

若要保留框架的图标,请替换

browse.showOpenDialog(select)
browse.showOpenDialog(MainForm.frame)
 类似资料:
  • 基本上,这就是我正在做的 1) 将AlarmManager设置为执行广播接收器(BCR) 2) 从BCR启动MyActivity 3)如果我的活动没有打开,请打开屏幕 出于某种原因,我注意到当MyActivity打开时,它的流程如下所示: onCreate/onNewIntent- 我不知道为什么它会马上暂停。我注意到这只发生在屏幕被标志打开时。有人知道为什么会这样吗?有什么办法可以防止这种行为吗

  • 在这里,我附上了我的代码:我现在正在开发我想要创建的音乐播放器,所以我在Swing FrameWork上编码此代码可以正常工作,然后添加两个名为上一个按钮和下一个播放按钮的按钮,添加这些按钮后,摆动框架没有打开,即使我尝试通过评论新添加的行(上一个按钮和下一个按钮),但这对我没有帮助

  • 我的建议是正确执行并预先准备正确的操作,除了执行两次。我希望它只执行一次。应该触发通知的方法只执行一次,因为startTestSuite标题只在日志中打印一次。bean和上下文是在TestNG类中生成的。我尝试在initSpring()方法上使用@beforeClass和@beforeSuite标记运行它,结果相同。 进一步的上下文:这样做的目的是获取测试套件何时开始和结束的时间戳,以及各个测试何

  • 问题内容: 我正在尝试使用方法两次读取给定文件的内容。奇怪的是,当我第二次调用它时,似乎没有将文件内容作为字符串返回? 这是代码 当然我知道这不是最有效或最好的方法,这不是重点。关键是,为什么我不能调用两次?我需要重置文件句柄吗?或者关闭/重新打开文件以执行此操作? 问题答案: 调用read()将读取整个文件,并将读取的游标留在文件的末尾(仅读取其他内容)。如果你希望一次阅读一定数量的行,则可以使

  • 我制作了一个按钮,可以创建一个JFileChooser,这样用户就可以打开一个。txt文件,下面是按钮的动作侦听器中的代码: 如果您选择。txt文件在文件选择器中,但如果您只需选择一个文件,然后按“取消”并退出,它也可以工作。我想这是因为getSelectedFile(),但我想知道是否有办法确保用户选择了一个文件,并在文件选择器内按open作为获取文件的条件?