gpt4 book ai didi

java jlist 有时不完全显示其中一项

转载 作者:行者123 更新时间:2023-12-01 15:21:06 26 4
gpt4 key购买 nike

我在使用 Jlist 时遇到问题。我有 ScrollPane 并向其中添加了 Jlist。有时我看不到列表中的第一项。(我也看到列表中其他项目的这种行为)

感谢任何帮助。

谢谢,enter image description here

这是代码片段

-JList 创建:

    jAllScrollPane = new JScrollPane();
jAllScrollPane.getViewport().add(allNetLayer);
allNetLayer.setVisibleRowCount(3);
  • 我通过以下方法将项目添加到 JList

     void addItemToList(String lay)
    {
    layerInit =1;
    if(lay.compareTo("All") ==0)
    {
    listData.clear();
    }
    if(lay.compareTo("DONE") == 0)
    {
    allLay.setListData(listData);
    jAllScrollPane.updateUI();
    }
    else
    {
    listData.addElement(lay);
    }
    layerInit =0;
    }
  • GUI 创建:

     javax.swing.GroupLayout jLogPanelLayout = new javax.swing.GroupLayout(jLogPanel);
    jLogPanel.setLayout(jLogPanelLayout);
    jLogPanelLayout.setHorizontalGroup(
    ....
    ....
    .addComponent(jAllScrollPane, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 200, javax.swing.GroupLayout.DEFAULT_SIZE))
    ....
    ....
    .addContainerGap())
    );
    jLogPanelLayout.setVerticalGroup(
    ....
    ....
    .addComponent(jAllScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 190, javax.swing.GroupLayout.PREFERRED_SIZE)
    ....
    ....
    .addGap(20,20,20))))

    );
    jTabbedPane1.addTab("All", jLogPanel);

最佳答案

您发布的代码非常困惑。而且编译起来也非常困难。

我唯一能为你做的就是

  • 建议 - 阅读 @mKorbel 评论并将其铭记于心
  • 使用更简单的布局 - BorderLayout , GridLayout等或MigLayout
  • 使用fire*(data changed) Swing 模型上的方法 repaint()
  • 您可以使用new JScrollPane(<panel inside>)
  • addItemToList应该有single responsibility - 将项目添加到列表 - 不应该存在条件
  • 您不应重置整个列表模型数据来添加一项
  • 你可以做import - 而不是每次都写javax.swing.GroupLayout
  • 创建 GUI 时不应创建状态 - layerInit

关于java jlist 有时不完全显示其中一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10920798/

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