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

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

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

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

下面是使用JFileChooser的Java Swing示例,我正在寻找这样的东西放入我的JFrame

Windows文件对话框

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

原生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组件通常不是一个好主意。 在基于Swing的JFrame上打开AWT FileDialog不是问题,因为它们都是顶级容器。 我很确定这同样适用于Swing / SWT或AWT / SWT。

如果您不需要JFileChooser的灵活性,则可以选择使用本机OS文件对话框的FileDialog 。 另请参阅Code ranch主题和SO上的答案