可以从 JFileChooser 中删除标题栏吗?

Possible to remove Title bar from JFileChooser?

我正在尝试显示一个没有标题栏的简单 JFileChooser。 下面是示例代码:

package ca.customfilepicker.main;
import java.awt.Component;
import java.awt.HeadlessException;

import javax.swing.BorderFactory;
import javax.swing.JDialog;
import javax.swing.JFileChooser;

class CustomFileChooser

{

    public static void main(String args[]) {

        JFileChooser chooser = new JFileChooser() {
            @Override
            protected JDialog createDialog(Component parent) throws HeadlessException {
            
                JDialog diag = super.createDialog(parent);
                
                //diag.setUndecorated(true);
                return diag;
            }
        };
        
        chooser.setBorder(BorderFactory.createTitledBorder("Open"));
        chooser.showOpenDialog(null);

    }
}

所以基本上我希望我设置的边框是顶级标题栏。示例图片:

到目前为止,我实现这一目标的运气为零,也没有发现任何其他人正在寻找类似的外观。 感谢帮助!干杯

JFileChooser只是一个Swing组件。它可以添加到任何容器。

因此您可以创建一个未修饰的 JDialog 并将 JFileChooser 的一个实例添加到对话框中。

现在的问题是“打开”和“取消”按钮不会关闭对话框,因此您需要手动关闭。您可能会覆盖 JFileChooser 的“approveSelection()andcancelSelection()` 方法。

我猜逻辑是调用 super.approveSelection() 或 super.cancelSelection() 然后使用 SwingUtilities.windowForComponent(...) 方法获取父 window 然后在 window.

上调用 dispose()