【发布时间】:2013-01-23 05:18:17
【问题描述】:
我正在为组件设计课程实施一个程序,目前正在努力解决 Jlist 的简单用途。程序绘制形状并应在框架的 BorderLayout.West 的 ScrollPane 中的 JList 中显示它们。
当前程序显示 ScrollPane,但不会显示我添加到 shapeListModel 中的对象。我想知道我遗漏了什么,或者我的代码是否有问题。目前,这是与 JList 创建、分配和更新相关的所有代码。
//Class Variable Declaration
protected ArrayList<Shape> shapes = new ArrayList<Shape>();
private JScrollPane shapeScrollPane = new JScrollPane();
private JList<String> shapeList;
protected DefaultListModel<String> shapeListModel;
//Creation of JList objects and what not
shapeListModel = new DefaultListModel<String>();
//This element is added aimply to try and get one to show up on my JList,
shapeListModel.addElement("SERIOUSLY FRUSTRATED");
//It does not just so you know
shapeList = new JList<String>(shapeListModel);
shapeList.setModel(shapeListModel);
//Adding JList to ScrollPane and setting size
shapeScrollPane.add(shapeList);
shapeScrollPane.setPreferredSize(new Dimension(250,600));
//Clarifying JList actions
shapeList.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
shapeList.setLayoutOrientation(JList.HORIZONTAL_WRAP);
shapeList.setVisibleRowCount(-1);
shapeList.addListSelectionListener(this);**
//This is called everytime a new shape is created and adds it to the Arraylist
//shapes and the DefaultListModel shapeListModel
shapes.add(newShape);
shapeListModel.addElement(newShape.toString());
对于我刚才提出的格式不正确的问题,我深表歉意。我已经坚持了大约 4 个小时,最后两个小时花在网上寻找答案。我现在要问任何人是否在我的代码中看到问题。
【问题讨论】:
-
我怀疑
shapeList.setVisibleRowCount(-1);可能是问题的一部分.. -
如需尽快获得更好的帮助,请发帖SSCCE。
标签: java swing jscrollpane jlist defaultlistmodel