Anonymní profil Rikimara – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Rikimara – Programujte.comAnonymní profil Rikimara – Programujte.com

 

Příspěvky odeslané z IP adresy 85.70.146.–

Rikimara
Java › Aktualizace dat z db v JTable
22. 11. 2011   #150304

#2 liborb
A jak jí dám vědět?

Rikimara
Java › Aktualizace dat z db v JTable
22. 11. 2011   #150294

Zdravím, narazil jsem na problém s aktualizací dat v JTable. Předem upozorňuji, že hlavně v GUI jsem zatím začátečník. Teď k problému.

Mám Tabulku, do které načítám data z databáze. Když program zapnu, tak se mi zobrazí to, co má. Mám několik tlačítek na manipulaci s databázi. Přidání, editace, smazaní (nastavení sloupce deleted na 1) atd.
Jde o to, že pokud například přidám nového uživatele do databáze, tak se neaktualizuje tabulka, jinak v databázi je. Pokud se program zapne znova, už tam je.


/** Atributy*/

private String[] columns = {"ID", "Jméno", "Příjmení", "Stav Konta", "Price category", "ID Card"};
DefaultTableModel model ;
JTable table;

/** Část konstruktoru */

model = new DefaultTableModel(loadData(), columns);
table = new JTable(model);


/** Takto vypadá actionListener tlačítka na vymazání */

erase.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {
int i = table.getSelectedRow();

/** Pokud není vybrán řádek, nic se nestane.*/
if (i == -1) {
return;
}

/** Uloží ID uživatele.*/
String str = String.valueOf(table.getValueAt(i, 0));

/** Vytáhne User z databáze a nastaví deleted na 1.*/
try {
User usr = new User(Integer.valueOf(str));
usr.setDeleted(1);
model.fireTableDataChanged();
} catch (SQLException ex) {
}

}
});


/** Metoda pro načtení dat, vrátí pole všech dat z db, kde není deleted nastaveno na 1 */

public Object[][] loadData() throws SQLException {
System.out.println("loading");
usersFromDB = ArraysOb.getInstance().getUsers();
Iterator<User> it = usersFromDB.listIterator();
int size = 0;
while (it.hasNext()) {
User usr = it.next();
if (usr.getDeleted() == 0) {
size++;
}
}
it = usersFromDB.listIterator();
Object[][] tmp = new Object[size][6];
int i =0;
while (it.hasNext()) {
User usr = it.next();
if (usr.getDeleted() == 0) {
tmp[i][0] = usr.getUserId();
tmp[i][1] = usr.getName();
tmp[i][2] = usr.getSurname();
tmp[i][3] = usr.getBalance();
tmp[i][4] = usr.getPriceCategory();
tmp[i][5] = usr.getIdCard();
i++;
}
}
return tmp;
}

Doufám, že jsem napsal vše potřebné. Fakt nevím, jak dál    , díky za každou radu.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý