gpt4 book ai didi

java - 使用 AddElement 更改 DefaultListModel 时,JList 不显示

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

我正在为组件设计类(class)实现一个程序,目前正在努力解决 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 个小时,最后两个小时花了在网上寻找答案。我现在要询问任何人是否发现我的代码中存在问题。

最佳答案

您不能将组件“添加”到滚动 Pane 中。您需要设置它的 View 端口 View 。

不要这样做...

shapeScrollPane.add(shapeList);

这样做...

shapeScrollPane.setViewportView(shapeList);

查看

此外,这个 shapeList.setVisibleRowCount(-1) 让我害怕极了。

已更新

你也不需要这个...

shapeList = new JList<String>(shapeListModel);
shapeList.setModel(shapeListModel);

这已经足够了......

shapeList = new JList<String>(shapeListModel);

已更新

此外,如果这与之前关闭的问题中使用的代码相同......

这个canvas.getGraphics()让我害怕!!如果您的讲师给了您此代码,那么他们就不应该教您!

关于java - 使用 AddElement 更改 DefaultListModel 时,JList 不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14472953/

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