如何在没有JFileChooser的Java Swing中打开文件
我正在使用Java Swing(GUI),我想在我的项目中添加一个按钮来打开文件。
我不喜欢JFileChooser
因为它打开了一个小窗口来浏览目录的文件。 我可以在Java Swing下使用其他东西而不是JFileChooser
吗?
我试图使用SWT的元素,但它不起作用,意思是使用按钮对象然后在JFrame
使用它,但是失败了,所以我猜SWT和Swing不会混合在一起?
下面是使用JFileChooser的Java Swing示例,我正在寻找这样的东西放入我的JFrame
。
原生PLAF的JFileChooser
似乎符合规定的要求。
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上的答案