Java AbstractListModel是否有getSelectedIndex()方法?

Java AbstractListModel是否有getSelectedIndex()方法?,java,swing,Java,Swing,我试图从AbstractListModel的实现中获取所选项目。我应该使用哪种类型的侦听器?似乎只有ListDataListener类,但它似乎没有我想要的功能 谢谢你的帮助 实施情况如下: class MyListModel extends javax.swing.AbstractListModel<String> { private final ArrayList<String> myArrayList = new ArrayList<String&g

我试图从AbstractListModel的实现中获取所选项目。我应该使用哪种类型的侦听器?似乎只有ListDataListener类,但它似乎没有我想要的功能

谢谢你的帮助

实施情况如下:

 class MyListModel extends javax.swing.AbstractListModel<String> {
    private final ArrayList<String> myArrayList = new ArrayList<String>();


    public void addElement(String obj) {
        if(obj==null || obj.isEmpty()) return;
        myArrayList.add(obj);
        fireIntervalAdded(this, myArrayList.size()-1, myArrayList.size()-1);
    }
    public void removeElement(String obj) {
        int idx = myArrayList.indexOf(obj);
        if(idx!=-1) {
            myArrayList.remove(obj);
            fireIntervalRemoved(this, idx, idx);
        }
    }


    @Override
    public String getElementAt(int index) { return myArrayList.get(index); }

    @Override
    public int getSize() { return myArrayList.size(); }
}
MyListModel类扩展了javax.swing.AbstractListModel{ 私有最终ArrayList myArrayList=新ArrayList(); 公共无效加法器(字符串obj){ if(obj==null | | obj.isEmpty())返回; myArrayList.add(obj); fireIntervalAdded(this,myArrayList.size()-1,myArrayList.size()-1); } 公共无效删除(字符串obj){ int idx=myArrayList.indexOf(obj); 如果(idx!=-1){ myArrayList.remove(obj); fireIntervalRemoved(此,idx,idx); } } @凌驾 公共字符串getElementAt(int-index){return myArrayList.get(index);} @凌驾 public int getSize(){return myArrayList.size();} } getSelectedIndex()方法不是
模型的方法,而是
视图(JList)
的方法。模型可能由多个视图共享,因此无法跟踪模型中的选择


JList
使用
ListSelectionModel
跟踪所选索引。

@jsc123,我刚刚告诉过你。模型只存储数据,并在数据更改时通知视图。视图绘制数据。那么Camickr,你建议我如何使用基于ArrayList的ListModel实现,以允许我访问突出显示的项目?@jsc123,你不必做任何事情。该视图已包含所有这些信息。JList具有允许您访问模型中数据的方法。JList具有允许您访问所选索引的方法。这不是您应该尝试在模型中执行的操作。如果您认为您需要在模型中这样做,那么您的设计是错误的。所以我不能使用AbstractListModel,如上所示?我如何使用具有ArrayList功能的JList?@jsc123,我下午就要离开了。我建议您阅读上Swing教程的部分。
ListDemo
展示了使用列表的基础知识,包括如何使用getSelectedIndex()方法从列表中动态删除行。