当前位置: 首页 > 面试题库 >

嵌入在JPanel中的JFileChooser

曾光誉
2023-03-14
问题内容

我正在编写一个需要文件打开对话框的Java程序。文件打开对话框并不难,我希望使用JFileChooser。我的问题是我想要一个双窗格JFrame(由2组成JPanels)。左侧面板上有一个JList,右侧面板上有一个文件打开对话框。

当我使用JFileChooser.showOpenDialog()它时,将在所有其他窗口上方打开对话框,这不是我想要的。有什么方法可以使JFileChooser(或可能是另一个文件选择对话框)显示在JPanel而不在其上方弹出?

这是我尝试过的代码,目前已非常简化。目前,我只是试图JFileChooser将嵌入JPanel

public class JFC extends JFrame{
    public JFC()
    {
        setSize(800,600);

        JPanel panel= new JPanel();

        JFileChooser chooser = new JFileChooser();
        panel.add(chooser);

        setVisible(true);

        chooser.showOpenDialog(null);
    }

    public static void main(String[] args)
    {
        JFC blah = new JFC();
    }
}

我也打过电话chooser.showOpenDialogthispanel,但无济于事。另外,我尝试将JFileChooser直接添加到框架中。上面列出的两种尝试仍然会在JFileChooser框架或面板的前面弹出(取决于我添加的对象JFileChooser)。


问题答案:

JFileChooser扩展了JComponent和Component,因此您应该能够将其直接添加到框架中。

JFileChooser fc = ...
JPanel panel ...
panel.add(fc);


 类似资料:
  • 问题内容: 我正在尝试在JPanel中嵌入HWND(窗口句柄)。 实际上,我可以将HWND嵌入到JFrame中,但是嵌入式窗口始终位于其他组件的顶部,因此无法移动它。如果尝试删除我的JFrame的所有子组件,则HWND将保留在那里。HWND似乎是在JFrame顶部绘制的,而不是其中之一。 要将HWND嵌入到JPanel中,我通过jna使用User32: 我用它来获取我的JFrame的HWND: 有

  • 问题内容: 我需要在Tomcat中启动Hazelcast,而无需单独的war文件。因此,将hazelcast.jar放入lib文件夹中的hazelczast.xml某处…接下来呢?还是不可能? 问题答案: 第一步是好的,只需将Hazelcast lib和配置放在Tomcat的libs文件夹中。接下来,如果您不需要单独的WAR文件,则是构建一个小的Valve类来启动/关闭Hazelcast节点。问题

  • 问题内容: 我正在尝试在JPanel中使用vlcj播放视频,但它对我不起作用。我得到的消息异常是“ java.lang.IllegalStateException:视频表面组件必须是可显示的”,这与保持错误消息“组件必须可显示”中的问题相同 包含画布和vlcj播放器的JPanel的代码是这样的: MyJFrame扩展了JFrame,仅包含MyJPanel JPanel。我认为这根本不重要。 提前致

  • 做这件事最轻的方法是什么。使用像反应艺术这样的东西对我试图做的事情来说是过度的。

  • 我正在编写一个小闹钟程序,当闹钟时间到了时,它会播放一个音频文件几次。 程序的报警部分已经完成。现在我开始播放文件。我使用jFileChooser来选择文件。javax . sound . sampled . audio inputstream、javax . sound . sampled . audio system和javax.sound.sampled.Clip来播放我的wav文件。也在工

  • 我使用子JPanel构造JScrollPane,然后尝试将JScrollPane添加到父JPanel中,希望有一个可滚动的自定义JPanel。 我有一个大的细白线前面的所有我的组件,他们是没有滚动。有什么想法吗?