Java 检测用户何时按Delete键

Java 检测用户何时按Delete键,java,swing,jlist,keylistener,Java,Swing,Jlist,Keylistener,(使用Java 15.0.1) 我正在为学校编写一个程序,当用户在JList上按“DEL”键时,该程序应该执行一些代码。 我尝试了一些代码,我取得了以下成就: rechnungen.addKeyListener(new KeyListener() { @Override public void keyTyped(KeyEvent keyEvent) { char key = keyEvent.getKeyChar()

(使用Java 15.0.1) 我正在为学校编写一个程序,当用户在JList上按“DEL”键时,该程序应该执行一些代码。 我尝试了一些代码,我取得了以下成就:

rechnungen.addKeyListener(new KeyListener() {
            @Override
            public void keyTyped(KeyEvent keyEvent) {
                char key = keyEvent.getKeyChar();
                System.out.println(key);
                }
现在,当我在该JList上按键时,我将在命令行中获得输出。 当我想检测“DEL”键时,我试了一下,它给了我这个:

将其粘贴到Intelliq中会在某些有线空间中显示:DEL 这个:
这是一个字符串,所以如果我想做一个切换大小写的事情,在特定的键上执行代码,它告诉我可以比较字符串和字符


我该怎么做呢?

这是一个示例应用程序,它显示一个
JList
,当您按键盘上的Delete键时,
JList
中的选定项将被删除。它使用

导入java.awt.BorderLayout;
导入java.awt.EventQueue;
导入java.awt.event.ActionEvent;
导入java.awt.event.KeyEvent;
导入java.util.array;
导入javax.swing.AbstractAction;
导入javax.swing.ActionMap;
导入javax.swing.DefaultListModel;
导入javax.swing.InputMap;
导入javax.swing.JComponent;
导入javax.swing.JFrame;
导入javax.swing.JList;
导入javax.swing.JScrollPane;
导入javax.swing.KeyStroke;
导入javax.swing.ListSelectionModel;
公共类DeletLst实现Runnable{
私有JFrame;
私人名单;
@凌驾
公开募捐{
showGui();
}
私有JScrollPane createList(){
字符串[]项=新字符串[]{“Yashin”,
“图拉姆”,
“马尔蒂尼”,
“巴雷西”,
“摩尔”,
“贝肯鲍尔”,
“迪斯蒂法诺”,
“梅西”,
“贝利”,
“马拉多纳”,
“克鲁伊夫”};
DefaultListModel=新的DefaultListModel();
addAll(Arrays.asList(items));
列表=新JList(型号);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
InputMap InputMap=list.getInputMap(JComponent.WHEN在聚焦窗口中);
inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,0),“deleteListSelection”);
ActionMap ActionMap=list.getActionMap();
put(“deleteListSelection”,新的ListDeleteAction());
JScrollPane scrollPane=新的JScrollPane(列表);
返回滚动窗格;
}
私有void showGui(){
frame=新的JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(createList(),BorderLayout.CENTER);
frame.pack();
frame.setLocationByPlatform(真);
frame.setVisible(true);
}
私有类ListDeleteAction扩展了AbstractAction{
@凌驾
已执行的公共无效操作(操作事件){
int ndx=list.getSelectedIndex();
如果(ndx>=0){
DefaultListModel=(DefaultListModel)list.getModel();
移除模型(ndx);
}
}
}
公共静态void main(字符串[]args){
invokeLater(新的DeletLst());
}
}

您应该使用
键绑定
击键
映射到
操作
。有关更多信息,请阅读上的Swing教程部分。本教程还有一节介绍如何使用操作。当用户按下键盘上的delete键时,是否要删除
JList
中的选定项目?@Abra yes。。。哦,我把这个问题搞砸了。。。但这是我的意图。如果这个问题很愚蠢,我很抱歉,我对java真的很陌生。