【问题标题】:Setting FileChooserUI property in UIManager to the system's将 UIManager 中的 FileChooserUI 属性设置为系统的
【发布时间】:2013-05-05 22:47:30
【问题描述】:

我想让我的 JFileChooser 使用系统的 LookAndFeel,但让我的其余组件使用 Nimbus。由于每个平台都提供了不同的FileChooserUI,那么如何将UIManager中的FileChooserUI属性设置为系统的LookAndFeel呢?

【问题讨论】:

    标签: java swing look-and-feel jfilechooser uimanager


    【解决方案1】:

    使用当前 LAF 创建组件。因此,您可以尝试以下方法:

    1. 将 LAF 设置为系统 LAF
    2. 创建 JFileChooser
    3. 将 LAF 重置为 Nimbus

    不确定这是否会导致文件选择器出现任何问题。

    【讨论】:

    • 可能有更好的解决方案,但这可行。谢谢!编辑:文件选择器上存在一些变色问题,但它可以正常工作。
    • :-) 不是我认为不是,可以为每个顶级容器应用不同的 L&F,就像在 Java7 中减少,Bug,Whatever 一样,仅用于装饰容器(形状或半透明容器不能用于改变 L&F,也不能不装饰)
    【解决方案2】:

    如果您使用的是 Windows,则可以使用 Windows 文件选择器:

    import org.eclipse.swt.*;
    import org.eclipse.swt.widgets.*;
    
    public class FileSelection {
    
    
        public static String getPath(){
            String path =null;
            Display display = new Display ();
            Shell shell = new Shell (display);
            // Don't show the shell.
            //shell.open ();  
            FileDialog dialog = new FileDialog (shell, SWT.OPEN | SWT.MULTI);
            path=dialog.open();
            shell.close();
            while (!shell.isDisposed ()) {
                if (!display.readAndDispatch ()) display.sleep ();
            }
            display.dispose ();
            return path;
        }
    } 
    

    getPath() 将返回所选文件的直接路径,但请注意,您必须下载org.eclips.swt 包并将.jar 文件添加到您的类路径中。 你可以在这里下载:Download

    如果你对使用这个文件选择器不感兴趣,那么Check this example.

    【讨论】:

      猜你喜欢
      • 2011-05-18
      • 2017-09-07
      • 1970-01-01
      • 2016-07-02
      • 2014-02-04
      • 2011-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多