从下到上显示Swing项目列表

时间:2009-11-20 06:59:00

标签: java swing

我需要在列表中显示项目(只读),但不是默认的从上到下显示列表的方式,我需要从下到上显示它。

+-----------------+
|                 |
|                 |
|                 |
|                 |
|          value 3|
|          value 2|
|          value 1|
+-----------------+

如果添加了新项目,则应将其添加到列表中,如下所示:

+-----------------+
|                 |
|                 |
|                 |
|          value 4|
|          value 3|
|          value 2|
|          value 1|
+-----------------+

我找不到允许我这样做的Swing组件。 我没有Swing的经验,也不知道如何解决这个问题。

3 个答案:

答案 0 :(得分:2)

在代码中的某个位置,每个新项目(在您的示例中为value4)必须通过将其添加到列表模型中添加到列表中。我们假设您的列表名为list,并且由名为​​DefaultListModel的{​​{1}}支持,如下所示:

listModel

在某个地方,您拥有实际添加新元素的代码,如下所示:

// Create a new list of items
DefaultListModel listModel = new DefaultListModel();
JList list = new JList(listModel);

如果您希望始终在列表的开头添加新元素,那么您只需更改代码即可调用public void addNewElement(Object elementToAdd) { listModel.addElement(elementToAdd); } 而不是insertElementAt(),如下所示:

addElement()

同时,如果您的public void addNewElement(Object elementToAdd) { listModel.insertElementAt(elementToAdd, 0); } 显示在更大的空间内,并且您希望JList拥抱空间的底部,那么您可以将JList置于其中一个JList并告诉它使用JPanel贴在JPanel的底部。

因此,例如,如果您曾经将列表放入BorderLayout,就像这样:

JScrollPane

您可以将列表放入与列表背景颜色相同的JScrollPane listScrollPane = new JScrollPane(list); ,然后您可以将该列表放在滚动窗格中:

JPanel

答案 1 :(得分:0)

将包含胶水的盒子和列表添加到滚动窗格。

答案 2 :(得分:0)

在侦听新项目的侦听器方法中:

    String labelText = new String();
    for(int i = list.size()-1; i >= 0; i--)
    {
        labelText = list.get(i) + "<br>" + labelText;
    }
    label.setText(labelText);