Java - 从JList修改getSelectedValue()

时间:2015-06-09 14:52:04

标签: java

我有一个装满汽车的JList,由他们的名字代表。 喜欢:
-GT
-206x
-personalCar
-...

问题是:当我选择一个值时, getSelectedValue()方法返回列表中显示的字符串。 我希望获得汽车的ID,并修改 getSelectedValue()以返回ID。所以我创建了一个扩展JLabel并实现包含ID的ListCellRenderer的类。 JList将此类设置为他的cellRenderer。

如何覆盖 getSelectedValue()方法而不是返回汽车的名称,而是返回JLabel中的ID?

谢谢你的时间!

编辑:如果你想看到我想要的代码:

    list.addMouseListener(new MouseAdapter() {
        public void mouseClicked(MouseEvent e) {
        String ID = ((JList) e.getSource()).getSelectedValue();
        //this method returns not the value of the JLabel clicked, but the ID inside 
        }
    }

1 个答案:

答案 0 :(得分:2)

getSelectedValue()会返回您添加到列表中的对象。你的问题是你可能只添加了文本,而不是一个持有id的对象。 JList显示的值是使用toString()方法生成的,只要您的Car类同时具有合适的toString()getId()方法,您所要做的就是传递Car对象,而不只是传递其名称。