设置 min/max JFileChooser 的大小 - Java

Set min/max size of JFileChooser - Java

我有一个 JFileChooser 这样的:

JFileChooser fileChooser = new JFileChooser();
fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
if(fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
    //do something
}

现在我想设置它的 minimum/maximum 尺寸,因为如果我减小尺寸它看起来很糟糕,否则(这甚至不是可能的最小尺寸):

如果用户想让它比这个小,我不能冻结 JFileChooser 的大小吗?:

我试过这个:fileChooser.setMinimumSize(new Dimensio(400, 400));,但没用。
而且我认为它看起来不太好,如果尺寸 "jumps" 返回,当用户使 window 更小时,例如 600p * 600p.

您可以继承 JFileChooser,并在其 createDialog 方法中自定义对话框:

JFileChooser fileChooser = new JFileChooser() {
    private static final long serialVersionUID = 1;

    @Override
    public JDialog createDialog(Component parent) {
        JDialog dialog = super.createDialog(parent);
        dialog.setMinimumSize(new Dimension(600, 600));
        return dialog;
    }
};

不过这样做你不会有太大收获。其他用户将拥有与您不同的桌面主题和不同的字体。 600×600 像素在您的计算机上可能看起来不错,但不能保证它对其他人来说是合适的最小尺寸。最好只是接受用户可以将 window 做得小到无法使用,如果他们真的愿意的话。