Codenameone — как прослушивать выделение ячеек в таблице?

#codenameone

#codenameone

Вопрос:

В Codenameone есть ли способ определить, когда была нажата ячейка в таблице, чтобы я мог узнать, что выбрал пользователь? Я искал что-то вроде addActionListener в ячейке, но не могу его найти, есть что-то еще?

Комментарии:

1. Отлично, именно то, что мне было нужно, работает, спасибо!

Ответ №1:

Предполагая, что таблица недоступна для редактирования (в редактируемой таблице ячейки являются текстовыми полями), это должно быть довольно просто:

 Form hi = new Form("Table", new BorderLayout());
Table clickTable = new Table(new DefaultTableModel(new String[]{"AAA", "BBB"}, new String[][] {
    {"Row 1 A", "Row 1 B"},
    {"Row 2 A", "Row 2 B"},
    {"Row 3 A", "Row 3 B"},
})) {

    @Override
    protected Component createCell(Object value, int row, int column, boolean editable) {
        if(editable) {
            return super.createCell(value, row, column, editable);
        }
        Button b = new Button(""   value);
        b.addActionListener(e -> ToastBar.showMessage("Clicked "   row   ", "   column, FontImage.MATERIAL_INFO));
        return b;
    }

};

hi.add(BorderLayout.CENTER, clickTable);
hi.show();
  

Таблица с щелчками