当前位置:  开发笔记 > 编程语言 > 正文

JFileChooser嵌入在JPanel中

如何解决《JFileChooser嵌入在JPanel中》经验,为你挑选了2个好方法。

我正在编写一个需要文件打开对话框的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到的).



1> Steve Kuo..:

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

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



2> 小智..:

要访问文件选择器中的"按钮",您必须向其添加一个ActionListener:

fileChooser.addActionListener(this);
[...]

public void actionPerformed(ActionEvent action)
{
    if (action.getActionCommand().equals("CancelSelection"))
    {
        System.out.printf("CancelSelection\n");
        this.setVisible(false);
        this.dispose();
    }
    if (action.getActionCommand().equals("ApproveSelection"))
    {
        System.out.printf("ApproveSelection\n");
        this.setVisible(false);
        this.dispose();
    }
}

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有