Выберите следующую ячейку JTable - PullRequest
0 голосов
/ 11 сентября 2009

Я хотел бы создать jTable, в котором, когда пользователь выбирает не редактируемую ячейку, он должен автоматически менять фокус на следующую редактируемую ячейку. Важно: пользователь может выбрать ячейку с помощью клавиатуры (вкладка или стрелка) и щелчком мыши. Является ли это возможным?? Как к этому?

Ответы [ 2 ]

1 голос
/ 12 сентября 2009

Таблица табуляции показывает, как вы можете сделать это с помощью клавиатуры.

Я никогда не пробовал, но вы должны иметь возможность использовать MouseListener для вызова того же действия при нажатии на ячейку.

Только что сделал быстрый тест для MouseListener, и он, кажется, работает нормально:

JTable table = new JTable(...);
final EditableCellFocusAction action = 
    new EditableCellFocusAction(table, KeyStroke.getKeyStroke("TAB"));

MouseListener ml = new MouseAdapter()
{
    public void mouseReleased(MouseEvent e)
    {
        JTable table = (JTable)e.getSource();
        int row = table.rowAtPoint(e.getPoint());
        int column = table.columnAtPoint(e.getPoint());

        if (! table.isCellEditable(row, column))
        {
                ActionEvent event = new ActionEvent(
                    table,
                    ActionEvent.ACTION_PERFORMED,
                    "");
                action.actionPerformed(event);
        }
    }
};
table.addMouseListener(ml);
1 голос
/ 11 сентября 2009

Подробности этой ссылки Программный выбор элементов в компоненте JTable ; чтобы это отработать, вам понадобятся цепочки для мыши / etc.

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