Как очистить содержимое выделенных ячеек в JTable? - PullRequest
0 голосов
/ 02 января 2019

Я использую мышь для перетаскивания области выделения в некоторые ячейки JTable, область выделения - желтая, поэтому кто-нибудь может сказать мне точно, как очистить содержимое выделенных ячеек, нажав клавишу «Удалить» на клавиатуре или клавишу JButton?

Снимок выбранных ячеек:

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

1 Ответ

0 голосов
/ 02 января 2019

Создайте 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);

Проверьте Привязки клавиш для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...