Вопрос

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

Это было полезно?

Решение

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

Другие советы

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

Я никогда не пробовал, но вы должны иметь возможность использовать 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);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top