java - JScrollBar 在 Nimbus L&F 中不显示拇指

标签 java swing jlist nimbus jscrollbar

我遇到了一个只发生在 Nimbus L&F 上的问题。如果 JList 中的项目太多,JScrollBar 的缩略图就会消失。但是在金属 L&F 中,拇指总是可见的,因为它有一个最小尺寸。我还检查了 Nimbus L&F 中的逻辑,确实有相同的最小大小。但是没有影响。

请看下面我的代码:

    public static void main(String[] args) {
    for (UIManager.LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
        if ("Nimbus".equals(info.getName())) {
            try {
                UIManager.setLookAndFeel(info.getClassName());
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(Demo.class.getName()).log(Level.SEVERE, null, ex);
            } catch (InstantiationException ex) {
                Logger.getLogger(Demo.class.getName()).log(Level.SEVERE, null, ex);
            } catch (IllegalAccessException ex) {
                Logger.getLogger(Demo.class.getName()).log(Level.SEVERE, null, ex);
            } catch (UnsupportedLookAndFeelException ex) {
                Logger.getLogger(Demo.class.getName()).log(Level.SEVERE, null, ex);
            }
            break;
        }
    }

    JFrame f = new JFrame("Metal (height 300)");

    String[] ss = new String[100];
    for (int i = 0; i < ss.length; i++) {
        ss[i] = "" + i;
    }

    JList<String> l = new JList<String>();
    l.setListData(ss);

    final JScrollPane jScrollPane = new JScrollPane(l);
    f.getContentPane().add(jScrollPane);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setSize(300, 300);
    f.setVisible(true);
}

当我设置“f.setSize(300, 300);”时,拇指会消失。

enter image description here

但是如果我设置“f.setSize(300, 400);”,拇指将可见。

enter image description here

如何设置缩略图始终可见?

enter image description here

最佳答案

尝试将拇指的最小尺寸设置为1

getDefaults().put("ScrollBar.minimumThumbSize", new Dimension(29, 1));

关于java - JScrollBar 在 Nimbus L&F 中不显示拇指,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32857372/

相关文章:

java - 一个 JFrame 不会停止其他框架的代码

java - SwingWorker,从大型方法调用中发布

java Swing监听器: components listening at each others

java - Tomcat 7.0.30 不适用于 Resteasy 2.3.4

java - Apache 公共(public)集合的奇怪问题

java - 如何在java中使用SetWindowsHookEx函数?

java - Dispatcher.forward 导致无限循环

基于 Java 文本的应用程序

java - 我的 for 循环没有指向正确的属性

java - 当我点击 ListModel 时抛出错误