3

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

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

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

这是带有 JFileChooser 的 Java Swing示例, 我正在寻找类似的东西放入我的JFrame.

Windows 文件对话框

4

2 回答 2

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);
            }
        });
    }
}

还是不太合你的意?然后你可以从这个开始并将其更改为需要:


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

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

于 2012-06-05T16:30:05.663 回答
3

如果您不需要 的灵活性JFileChooser,您可以选择FileDialog使用本机 OS 文件对话框。另请参阅代码牧场主题这个答案

于 2012-06-05T16:06:56.527 回答