java jlist没有';有时不能完全显示其中一项
我与Jlist有问题。我有滚动窗格,并向其中添加了Jlist。有时我看不到列表中的第一项。(我也看到了列表中其他项的这种行为) 谢谢你的帮助 谢谢 下面是代码片段 -JList创建:java jlist没有';有时不能完全显示其中一项,java,swing,jscrollpane,jlist,Java,Swing,Jscrollpane,Jlist,我与Jlist有问题。我有滚动窗格,并向其中添加了Jlist。有时我看不到列表中的第一项。(我也看到了列表中其他项的这种行为) 谢谢你的帮助 谢谢 下面是代码片段 -JList创建: jAllScrollPane = new JScrollPane(); jAllScrollPane.getViewport().add(allNetLayer); allNetLayer.setVisibleRowCount(3); javax.swing.GroupLayout jL
jAllScrollPane = new JScrollPane();
jAllScrollPane.getViewport().add(allNetLayer);
allNetLayer.setVisibleRowCount(3);
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);
- 我使用以下方法将项目添加到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创建:
jAllScrollPane = new JScrollPane(); jAllScrollPane.getViewport().add(allNetLayer); allNetLayer.setVisibleRowCount(3);
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
migloayout
- 在Swing的模型上使用
方法,重新绘制()fire*(数据已更改)
- 您可以使用
newjscrollpane()
应具有-将项目添加到列表-条件不应存在addItemToList
- 您不应该重置整个列表模型数据以添加一项
- 您可以执行
——而不是每次import
javax.swing.GroupLayout
- 在创建GUI-
layerInit
- 您发布的代码非常混乱。而且它很难编译
我唯一能为你做的就是
- 而不是使用:
jAllScrollPane = new JScrollPane();
jAllScrollPane.getViewport().add(allNetLayer);
要添加组件,请使用该方法(如果不想使用接受参数的JScrollPane构造函数)
不直接向JScrollPane构造函数提供视图的应用程序应使用此方法指定将在scrollpane中显示的可滚动子级
你的密码在哪里?还是我们应该猜测你可能做错了什么?@G
1)
提高你的接受率,2)
我认为这是不可能回答的,3)
不要使用setBounds(),4)
使用适当的布局管理器,5)
阅读关于JList的Oracle教程6)
特别是要阅读关于JScrollPane的Oracle教程7)
即使我的魔幻地球仪中的电池已经完全充电,请将生成的a.m.输出发布到GUI