按下jlist

时间:2016-12-27 17:52:09

标签: java key line action jlist

我不明白如何删除由delete-key按下的JList行。我知道这听起来像是#34;请为我写代码"但是......它是)因为我不知道是否有可能确定实际的行,然后让它回答我的行为。

我开始写那样的东西

list.addKeyListener(new KeyAdapter() {
    public void keyReleased(KeyEvent e) {
        if(KeyEvent.getKeyText(e.getKeyCode()).equals("Delete")) {
             // removing    
        }

    }

});

但如何继续我不知道

1 个答案:

答案 0 :(得分:0)

假设您使用的是DefaultListModel,并假设您要删除所有选定的项目,那么您需要的代码是

list.addKeyListener(new KeyAdapter() {
    public void keyReleased(KeyEvent e) {
        if(KeyEvent.getKeyText(e.getKeyCode()).equals("Delete")) {
            // removing:
            DefaultListModel lm = (DefaultListModel) list.getModel();
            for(int i : list.getSelectedIndices()) {
                lm.remove(i);
            }
        }
    }
});

否则:

  • 如果您不想删除所有选定的项目,我不理解您的问题:(
  • 如果您不使用DefaultListModel,则必须扩展JList类或(更好)创建自己的ListModel实现并创建自己的删除方法...