繁体   English   中英

设置JFileChooser的位置

[英]Set the Location of the JFileChooser

我们如何设置JFileChooser窗口的位置,我尝试了setLocation()setBounds()方法,但它不起作用。

不幸的是,没有简单的方法可以做到这一点,因为无论何时显示选择器,内部createDialog方法都会将位置设置为父级的中心。

一种方法是继承JFileChooser并覆盖createDialog方法,如下所示:

   static class MyChooser extends JFileChooser {
        protected JDialog createDialog(Component parent)
                throws HeadlessException {
            JDialog dlg = super.createDialog(parent);
            dlg.setLocation(20, 20);
            return dlg;
        }
    }

现在你可以直接使用MyChooser而不是JFileChooser。 在上面的代码中,我已将位置硬编码为20,20,但您可以将其设置为您想要的任何内容。

JavaDoc for JFileChoosershowDialog ,看起来好像你没有对对话框的放置位置进行大量控制。

parent参数确定两件事:打开对话框所依赖的框架以及放置对话框时外观应考虑的位置的组件。 如果父对象是Frame对象(例如JFrame),则对话框取决于框架和外观相对于框架定位对话框(例如,在框架上居中)。 如果父组件是组件,则对话框取决于包含组件的框架,并且相对于组件定位(例如,以组件为中心)。 如果父项为null,则对话框取决于没有可见窗口,并且它被放置在依赖于外观的位置,例如屏幕的中心。

您可以尝试将JFileChooser的父级设置为当前的JFrame / JPanel。

JFrame parentToBe = new JFrame();
JFileChooser chooser = new JFileChooser();
int pathSelection = chooser.showSaveDialog(parentToBe);

这应该可以解决问题。

你也可以在这里查看参考。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM