2016-10-04 4 views
2

In Codenameone gibt es eine Möglichkeit zu erkennen, wenn eine Zelle in einer Tabelle angeklickt wurde, damit ich herausfinden kann, was der Benutzer ausgewählt hat? Ich suchte nach etwas wie einem addActionListener in der Zelle, kann aber keinen finden. Gibt es noch etwas anderes?Codenameone - wie für die Zellauswahl auf einem Tisch zu hören?

+0

ausgezeichnet, genau das, was ich brauchte, einen Zauber wirkt, Vielen Dank! – NvServices

Antwort

1

Angenommen, die Tabelle nicht bearbeitet werden kann (in einer editierbaren Tabelle sind die Zellen Textfelder) diese ziemlich einfach sein sollte:

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(); 

Table with clicks

Verwandte Themen