Tabulky v Javě

Z MiS
(Rozdíly mezi verzemi)
Přejít na: navigace, hledání
m (javax.swing.table.AbstractTableModel: Doplnění vysvětlení, oprava gramatických chyb.)
m (javax.swing.table.AbstractTableModel: Oprava formátování <code>)
Řádka 30: Řádka 30:
  
 
; Lze předefinovat také další metody
 
; Lze předefinovat také další metody
* <code>String getColumnName(int col)
+
* <code>String getColumnName(int col)</code>
 
*: popis sloupce, tedy co se má zobrazit v hlavičce sloupce
 
*: popis sloupce, tedy co se má zobrazit v hlavičce sloupce
* <code>boolean isCellEditable(int row, int col)
+
* <code>boolean isCellEditable(int row, int col)</code>
 
*: pokud vrátí <code>true</code>, pak bude buňka na řádku <code>row</code> a ve sloupci <code>col</code> editovatelná
 
*: pokud vrátí <code>true</code>, pak bude buňka na řádku <code>row</code> a ve sloupci <code>col</code> editovatelná
 
*: při zapsání hodnoty <code>JTable</code> zavolá metody <code>setValueAt()</code>.
 
*: při zapsání hodnoty <code>JTable</code> zavolá metody <code>setValueAt()</code>.
* <code>void setValueAt(Object, row, col)
+
* <code>void setValueAt(Object, row, col)</code>
 
*: touto metodou informuje <code>JTable</code> naši třídu, že hodnota v buňce se změnila. Je na nás, abychom zařídili odpovídající úpravu našich dat.
 
*: touto metodou informuje <code>JTable</code> naši třídu, že hodnota v buňce se změnila. Je na nás, abychom zařídili odpovídající úpravu našich dat.
  
Řádka 44: Řádka 44:
 
*: Například pro tabulku s údaji studentů ve třídě by mohla fungovat třída <code>TridaModel</code>, která by byla potomkem <code>AbstractTableModel</code> a jako atribut měla <code>ArrayList&lt;Student&gt;</code>, kde <code>Student</code> bude třída nesoucí informace o studentovi.
 
*: Například pro tabulku s údaji studentů ve třídě by mohla fungovat třída <code>TridaModel</code>, která by byla potomkem <code>AbstractTableModel</code> a jako atribut měla <code>ArrayList&lt;Student&gt;</code>, kde <code>Student</code> bude třída nesoucí informace o studentovi.
 
* Když <code>JTable</code> chce zobrazit tabulku, vyžádá si data od modelu.
 
* Když <code>JTable</code> chce zobrazit tabulku, vyžádá si data od modelu.
*: V našem příkladě zavolá metodu <code>getValueAt</code> třídy <code>TridaModel</code> postupně pro čísla řádku a sloupce (1,1), (2,1),... atd. Každým voláním zjistí hodnotu jedné buňky a vypíše ji.
+
*: V našem příkladě zavolá metodu <code>getValueAt(...)</code> třídy <code>TridaModel</code> postupně pro čísla řádku a sloupce (1,1), (2,1),... atd. Každým voláním zjistí hodnotu jedné buňky a vypíše ji.
 
* Pokud se uživatel pokusí do některé buňky zapsat, <code>JTable</code> mu to povolí pouze, pokud mu metoda <code>isCellEditable</code> vrátí <code>true</code>.
 
* Pokud se uživatel pokusí do některé buňky zapsat, <code>JTable</code> mu to povolí pouze, pokud mu metoda <code>isCellEditable</code> vrátí <code>true</code>.
 
* Pokud je zápis povolen, předá <code>JTable</code> data našemu modelu
 
* Pokud je zápis povolen, předá <code>JTable</code> data našemu modelu
*: Instance <code>JTable</code> tedy zavolá metodu <code>setValueAt</code> třídy <code>TridaModel</code>. Na toto volání je třeba zareagovat tak, že se vyhledá v seznamu správný student (podle čísla řádku) a upraví se jeho údaje (podle čísla sloupce zjistíme, který údaj se změnil).
+
*: Instance <code>JTable</code> tedy zavolá metodu <code>setValueAt(...)</code> třídy <code>TridaModel</code>. Na toto volání je třeba zareagovat tak, že se vyhledá v seznamu správný student (podle čísla řádku) a upraví se jeho údaje (podle čísla sloupce zjistíme, který údaj se změnil).
  
  

Verze z 9. 6. 2014, 11:56


Více viz: Oracle.com > Tutorial > Table.

javax.swing.JTable

JTable table = new JTable(new MyTableModel()); 


javax.swing.table.AbstractTableModel



Abstraktní metody (musí být předefinovány)

Tyto metody volá třída JTable. Sdělíme jí tak, jaká data má v tabulce zobrazovat a jak velká má být tabulka.


Lze předefinovat také další metody


Jak s třídou pracujeme


Pokud se změní data, je to třeba třídě JFrame sdělit

javax.swing.JScrollPane


Součásti


Použití pro zobrazení tabulky

JScrollPane scrollPane = new JScrollPane(table); 
panel.add(scrollPane);

Osobní nástroje
Jmenné prostory
Varianty
Akce
Výuka
Navigace
Nástroje