小编Dav*_* S.的帖子

在keypress上删除JList项目的例外情况

我在JList中遇到NullPointerException,但异常的来源似乎是Swing事件处理代码.JList有一个键监听器,当按下Delete键时,它将删除所选项.仅在列表中的第二个和所有后续删除上抛出异常.关于如何修复它的任何想法?

重现问题的示例代码和生成的异常包括在下面:

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Vector;

import javax.swing.JFrame;
import javax.swing.JList;

public class Sample {

    public static void main(String[] args) {
        final JFrame frame = new JFrame();

        final Vector<String> list = new Vector<String>();
        for (int i = 0; i < 5; ++i) {
            list.add("String " + i);
        }

        final JList listView = new JList(list);

        listView.addKeyListener(new KeyListener() {
            @Override
            public void keyPressed(KeyEvent e) {
                if (e.getKeyCode() == KeyEvent.VK_DELETE) {
                    list.remove(listView.getSelectedIndex());
                    listView.updateUI();
                }
            }

            @Override
            public void keyReleased(KeyEvent e) { } …
Run Code Online (Sandbox Code Playgroud)

java swing jlist

4
推荐指数
1
解决办法
3682
查看次数

标签 统计

java ×1

jlist ×1

swing ×1