JTable
Detekce změn v tabulce Chceme -li detekovat změny v tabulce, použijeme rozhraní TableModelListener. Rozhraní implementuje jednu metodu a to tableChanged(). Tuto metodu musíme předefnovat.t.getModel().addTableModelListener(new TableModelListener()
{
public void tableChanged(TableModelEvent e) {
}
});
Sloupec, ve kterém se upravovaná buňka nachází, můžeme detekovat prostřed nictvím metody getColumn(), řádek, ve kterém se upravovaná buňka nachází, prosřednictvím metody getRow(). Upravenou hodnotu lze získat prostřednictvím metody getValueAt(int row, int column).
public void tableChanged(TableModelEvent e) {
int radek = e.getRow();
int sloupec = e.getColumn();
TableModel m = (TableModel)e.getSource();
Object data = model.getValueAt(row, column)
}
Další operace s JTable již nebudeme uvádět, lze je nalézt ve specializované literatuře. Přehled nejpoužívanějším metod u komponenty JTable.
Metoda | Popis |
getRowCount() | Získání počtu řádků tabulky. |
getColumnCount() | Získání počtu sloupců tabulky. |
getValueAt(int row, int column) | Získání hodnoty v zadaném řádku a sloupci. |
getColumnName(int column) | Získání názvu sloupce. |
isCellEditable(int row, int column) | Je hodnota v zadaném řádku a sloupci editovatelná. |
setPreferredWith(int width) | Nastavení požadované šířky sloupce v pixelech. |
getColumn(Object o) | Vrací instanci typu TableColumn. |
setAutoResizeMode(int mode) | Nastavení módu změny šířky sloupce myší. |
setSelectionMode(int mode) | Nastavení možnosti výběru řádek u tabulky (jedna, více,..) |
getEditingRow() | Vrací číslo řádky, která je editována. |
getEditingColumn() | Vrací číslo sloupce, který je editován. |
setEditingRow() | Nastaví číslo řádky, která bude editována. |
setEditingColumn() | Nastaví číslo sloupce, který bude editován. |
setModel() | Nastavení modelu pro tabulku. |
Autor: Filip Koval