【问题标题】:Strange JList bug奇怪的 JList 错误
【发布时间】:2013-06-04 06:15:28
【问题描述】:

http://i.stack.imgur.com/8rQW1.png

JScrollPane scrollPane_4 = new JScrollPane();
    scrollPane_4.setViewportView(list_4);

final JList list_4 = new JList(modelItems);
    list_4.setBounds(428, 39, 294, 187);

    JButton btnNewButton_4 = new JButton("Refresh");
    btnNewButton_4.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            modelItems.clear();
            arrayOfItems.clear();
            for(RSItem d : Inventory.getAll())
            {
                arrayOfItems.add(d);
                modelItems.addElement("Item: "+d.getID()+" at spot: "+(d.getIndex()+1));
            }
        }
    });

我不确定是什么导致了这种情况发生。我有许多其他 JLists 几乎完全相同的代码,这不会发生。

【问题讨论】:

  • list_4.setBounds(428, 39, 294, 187); 看起来不正确。完全删除此行 - 布局应负责正确放置。
  • 我首先要说list_4.setBounds(428, 39, 294, 187); 是个坏主意...其次,这似乎是混合轻量和重量组件的问题,或者是糟糕的定制绘画或其他未突出显示的问题通过 sn-p...
  • 我使用的是绝对界限。这就是我设定界限的原因。布局管理器设置为空。 @mKorbel 我无法发布 SSCCE,因为我使用的是第三方 API。代码不会执行,因为它需要您在单独的(付费)应用程序中运行脚本。
  • @trashgod 这主要是看起来他实际上是在组件层次结构中添加JList而不是JScrollPane,但是没有SSCCE我们只能胡乱猜测
  • @user2450444 我无法发布 SSCCE,因为我使用的是第三方 API 您显然没有阅读这篇文章,因为它专门解决了第三方库问题.

标签: java swing jlist


【解决方案1】:

我很确定这不是您的代码。以下两行

  scrollPane_4.setViewportView(list_4);
  final JList list_4 = new JList(modelItems);

顺序相反。在声明列表之前,您首先设置了视口视图。确保您没有在这一行中将视图设置为null,并且这两者的顺序相反。

【讨论】:

  • 我在粘贴 Action 侦听器后对其进行了 C&P。这就是为什么它不正常。为什么你认为这不是我的代码?我向你保证,这一切都是。
  • @user2450444 我仍然不明白为什么添加ActionListener 会混淆这两行。很明显,您的代码无法编译,因此假设它不是您运行的“原始”代码。无论如何,您对setBounds 的调用很可能是您的问题之一(您永远不应该调用 setBounds,将其留给 LayoutManager 处理)。看起来您正在将列表而不是滚动窗格添加到组件层次结构中。为了尽快获得更好的帮助,请发帖SSCCE
猜你喜欢
  • 1970-01-01
  • 2010-11-17
  • 1970-01-01
  • 2014-10-11
  • 2012-04-27
  • 2013-10-30
  • 2016-09-18
  • 2012-03-18
  • 2015-05-13
相关资源
最近更新 更多