当前位置: 首页 > 面试题库 >

如何通过按键盘上的DELETE删除JTable中的行

萧越泽
2023-03-14
问题内容

我知道我可以使用KeyListener来检查是否(char) 127按下DELETE
,但是如何在JTable中将keyListener添加到selectedRow?

编辑:

我已经尝试过了,但是没有用:

myTable.addKeyListener(this);
...
public void keyPressed(KeyEvent e)
{
    if(e.getKeyCode() == 127 && myTable.GetSelectedRow() != -1)
    {
        btnRemove.doClick(); // this will remove the selected row in JTable
    }
}

问题答案:

KeyListeners的一个问题是,要侦听的组件 必须 具有焦点。解决此问题的一种方法是使用键绑定。

例如,

  // assume JTable is named "table"
  int condition = JComponent.WHEN_IN_FOCUSED_WINDOW;
  InputMap inputMap = table.getInputMap(condition);
  ActionMap actionMap = table.getActionMap();

  // DELETE is a String constant that for me was defined as "Delete"
  inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0), DELETE);
  actionMap.put(DELETE, new AbstractAction() {
     public void actionPerformed(ActionEvent e) {
        // TODO: do deletion action here
     }
  });


 类似资料:
  • 这是我的代码: 我所要做的就是使esc按钮与backspace按钮完全相同。所以我想删除

  • 问题内容: 所以我有一个GUI,一个Tile类和一个方法类。我在Game类中创建了四个图块,这些图块由图块组成,每个图块中都包含一个字母和一个颜色。现在,我想创建一个方法,当我单击键盘上的某个键到图块上该特定字母时,它将删除Tile。我该怎么办?是否在模型类中创建该方法并在Game(GUI)类中调用它? 问题答案: 您的游戏是“控制器”,它负责管理功能以及模型与视图之间的通信。 您的视图应代表您的

  • 问题内容: 我需要删除JTable中的所有行。 我已经尝试了以下两种方法: 和 两者都不会删除所有行。有任何想法吗? 问题答案: 以下代码为我工作:

  • delete 删除表中的数据delete($table, $where) table [string] 表名. where [array] WHERE 删除条件.Return: [number] 返回被删除的行数.一个比较危险的操作,操作前请考虑好。。。 $database->delete("account", [ "AND" => [ "type" => "business"

  • delete 删除表中的数据delete($table, $where) table [string] 表名. where [array] WHERE 删除条件.Return: [PDOStatement]返回 PDOStatement对象一个比较危险的操作,操作前请考虑好。。。 $database->delete("account", [ "AND" => [ "type" => "busin

  • 问题内容: 当用户在inputAccessoryView中点击“附加”按钮时,我想通过键盘创建一个简单的视图。像这样: 有简单的方法吗?或者我应该创建我的自定义键盘? 问题答案: 您可以将该新子视图添加到您的应用程序窗口。