如何清除JTable中选定单元格的内容?

时间:2019-01-02 15:58:03

标签: java swing jtable

我使用鼠标拖动一些JTable单元格中的选择区域,该选择区域为黄色,因此任何人都可以告诉我如何通过按键盘上的“删除”键来清除所选单元格的内容。 JButton

所选单元格的捕获图片:

https://i.stack.imgur.com/2FvkU.png

1 个答案:

答案 0 :(得分:0)

创建一个Acton来查找选定的单元格并清除文本。最简单的方法是遍历表中的每个单元格。

Action的基础如下:

Action clearAction = new Action()
{
    @Override
    public void actionPerformed(ActionEvent e)
    {
        for (each row in the table)
            for (each column in the row)
                if (table.isCellSelected(...))
                   table.setValueAt("", ...);
    }
}

然后创建一个按钮来调用该动作:

JButton clearButton = new JButton( "Clear" );
clearButton.addActionListener( clearAction );

如果您还想使用Delete键,则可以使用Key Bindings来共享同一操作。

向JTable添加新的键绑定的基本逻辑是:

String keyStrokeAndKey = "DELETE";
KeyStroke keyStroke = KeyStroke.getKeyStroke(keyStrokeAndKey);
table.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(keyStroke, keyStrokeAndKey);
table.getActionMap().put(keyStrokeAndKey, action);

查看Key Bindings了解更多信息。