如何在没有JFileChooser的Java Swing中打开文件

JAN*_*JAN 3 java file-io swing swt jfilechooser

我正在使用Java Swing(GUI),我想在我的项目中添加一个按钮来打开文件.

我不喜欢JFileChooser它,因为它打开一个小窗口来浏览目录的文件.我可以使用其他东西而不是JFileChooser Java Swing吗?

我试过使用SWT的元素,但它不起作用,意思是使用按钮对象然后在里面使用它JFrame,但是失败了,所以我猜SWT和Swing不能混在一起?

下面是该示例的Java Swing与JFileChooser中 ,我寻找的东西像这样把我的JFrame.

Windows文件对话框

And*_*son 5

JFileChooser 与原生PLAF似乎符合规定的要求.

原生PLAF文件选择器

import javax.swing.JFileChooser;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;

public class NativeFileChooser {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(
                            UIManager.getSystemLookAndFeelClassName());
                } catch(Exception e) {
                    e.printStackTrace();
                }
                JFileChooser jfc = new JFileChooser();
                jfc.showOpenDialog(null);
            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

仍然不太符合你的喜好?然后你可以从这个开始并改变它需要:


..所以我猜SWT和Swing不会混在一起?

同一顶级容器中混合使用Swing/AWT/SWT组件通常不是一个好主意.FileDialog基于Swing 打开AWT不是问题,JFrame因为它们都是顶级容器.我很确定这同样适用于Swing/SWT或AWT/SWT.