Aktualizace dat z db v JTable – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Aktualizace dat z db v JTable – Java – Fórum – Programujte.comAktualizace dat z db v JTable – Java – Fórum – Programujte.com

 

Rikimara
~ Anonymní uživatel
2 příspěvky
22. 11. 2011   #1
-
0
-

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.

Nahlásit jako SPAM
IP: 85.70.146.–
liborb
~ Redaktor
+18
Guru
22. 11. 2011   #2
-
0
-

Po úpravě hodnot v databázi musíš dát vědět tabulce JTable, aby se aktualizovala podle nových dat. V "nejhorším" případě obsah tabulky smažeš a načteš ho celý znova jako při startu aplikace.

Nahlásit jako SPAM
IP: 78.80.52.–
Rikimara
~ Anonymní uživatel
2 příspěvky
22. 11. 2011   #3
-
0
-

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

Nahlásit jako SPAM
IP: 85.70.146.–
zlz
~ Anonymní uživatel
634 příspěvků
23. 11. 2011   #4
-
0
-
Nahlásit jako SPAM
IP: 213.211.51.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 15 hostů

Podobná vlákna

Automatická aktualizace dat — založil Shark

JTable filtrovanie — založil otaznik

JTable vypis do souboru — založil roman.jaros

Moderátoři diskuze

 

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