gpt4 book ai didi

Java JScrollPane 有时无法成功调整大小

转载 作者:行者123 更新时间:2023-12-02 03:41:24 26 4
gpt4 key购买 nike

我有下一部分代码:

    final JList<String> list = new JList<String>(strings);
list.setLayoutOrientation(JList.VERTICAL);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

/* Create scroll pane instance */
JScrollPane scroll = new JScrollPane(list) {
@Override
public Dimension getPreferredSize()
{
BookFrame frame = BookFrame.instance();

Container parent = getParent();

return new Dimension(frame.getWidth(), parent.getHeight() - parent.getComponent(parent.getComponentCount() - 1).getHeight() - 14);
}
};

/* Create button instance */
JButton button = new JButton("Add Directory");

/* Add new panel */
JPanel panel = new JPanel();
panel.add(scroll);
panel.add(button);

此代码在程序启动时运行,有时按钮高度是正常值(例如 15),但有时是 0。我认为问题出在 JScrollPane 实例上 - 它是在 JButton 实例之前创建的 - 但我无法同步。我还尝试在 JScrollPane scroll = ... 之前添加 JButton button = ... 但它也不起作用。

我是 Java 新手,所以请告诉我我做错了什么。

最佳答案

我看不出有任何理由需要重写 getPreferredSize() 方法。我猜这就是问题所在。

JScrollPane scroll = new JScrollPane(list)

我不知道“列表”是什么,但假设您使用的是 JList 那么您可以使用:

list.setVisibleRowCount(...);

表示列表大小的行数。然后,滚动 Pane 将具有该大小,并且如果需要,将出现滚动条。

关于Java JScrollPane 有时无法成功调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36800309/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com