gpt4 book ai didi

java - 我的 Jlists 没有发生滚动

转载 作者:行者123 更新时间:2023-12-02 04:50:31 25 4
gpt4 key购买 nike

我使用 windowbuilder 创建了一个 GUI,它应该是一个联系人列表。有两个列表:一个是联系人列表,另一个是号码列表。当您选择联系人时,他的号码就会出现。但是,当我添加大量联系人时,滚动条不会像我的 friend 那样自动出现,所以我尝试添加一个 JScrollPane。还是不行。

事情是这样的:

    DefaultListModel contact = new DefaultListModel();  
JList contacts = new JList(contact);
contacts.setBounds(22, 64, 186, 135);

contentPane.add(contacts);

这是我尝试过的:

    DefaultListModel contact = new DefaultListModel();  
JList contacts = new JList(contact);
contacts.setBounds(22, 64, 186, 135);
JScrollPane scrollPane1 = new JScrollPane(contacts);


contentPane.add(contacts);
contentPane.add(scrollPane1, BorderLayout.WEST);

然后我也尝试将 Bounds 添加到滚动面板:

    DefaultListModel contact = new DefaultListModel();  
JList contacts = new JList(contact);
contacts.setBounds(22, 64, 186, 135);
JScrollPane scrollPane1 = new JScrollPane(contacts);
scrollPane1.setBounds(22, 64, 186, 135);


contentPane.add(contacts);
contentPane.add(scrollPane1, BorderLayout.WEST);

当我删除“contacts.setBounds(22, 64, 186, 135);”时,该列表停止工作。

我也尝试过没有最后一行,我尝试过只包含最后一行而不包含倒数第二行,我尝试添加“scrollPane1.setViewportView(contacts);”,我尝试去掉“BorderLayout.WEST”所有其他尝试的论点,所以我基本上尝试了我在互联网上找到的“解决方案”的所有组合

我不知道发生了什么,也不知道如何解决它。我想要的只是能够通过滚动查看我的所有联系人。

编辑,已解决:

问题是我的面板被声明为 contentPane.setLayout(null);因此“BorderLayout.WEST”是不必要的。此外,边界应该应用于滚动 Pane ,而不是列表。最后,我不应该在面板中使用 add(contacts) 。解决方案是:

    DefaultListModel contact = new DefaultListModel();  
JList contacts = new JList(contact);
JScrollPane scrollPaneContact = new JScrollPane(contacts);
scrollPaneContact.setBounds(22, 64, 186, 135);
contentPane.add(scrollPaneContact);

我正在更新,以防有人遇到类似问题。

最佳答案

您需要使用正确的构造函数为 JScrollPane 设置策略。

JScrollPane(Component view, int vsbPolicy, int hsbPolicy) Creates a JScrollPane that displays the view component in a viewport whose view position can be controlled with a pair of scrollbars.

例如:

   new JScrollPane(COMPONENT, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);

编辑:

 DefaultListModel model = new DefaultListModel();  
JList contactsList = new JList(model);
JScrollPane scrollPane1 = new JScrollPane(contactsList, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

关于java - 我的 Jlists 没有发生滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29280743/

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