Wątek przeniesiony 2015-06-21 22:25 z Java przez bogdans.

Aktualizacja jTable przez inny jFrame

0

Witam,

Posiadam główne okno programu, w który znajduje się jTable1, mam także stworzone inne jFramy, przy użyciu których operuję na bazie danych. Mam jednak problem z "aktualizacją" jTable po dodaniu nowego wpisu tzn. samą funkcję mam napisaną, wszystko działa, ale tylko, gdy jest wywoływana w głównej klasie.

 
public void test(){
DefaultTableModel model = (DefaultTableModel) jTable2.getModel();
model.setRowCount(0);
baza.PobierzDane(Moje Zapytanie);
}

Próbuję wywołać tę funkcję z klasy głównej w inne klasy, przez którą dodaje sobie nowe wpisy

 
Program program = new Program()
program.test();

Niestety nie ma żadnej reakcji, chodzi mi o to, że klikasz przycisk "Zapisz" dodaje się nowy wpis i od razu po tym odświeża mi się jTable i pokazuje nowo dodany wpis. Próbowałem także wklepać kod w innej klasie pod przyciskiem.

 
Program program = new Program()
DefaultTableModel model = (DefaultTableModel) program.jTable2.getModel();
model.setRowCount(0);
baza.PobierzDane(Moje Zapytanie);
0

Mylisz się, jest reakcja tylko jej nie widzisz. W wierszu

Program program = new Program()

tworzysz nowe okno i w nim aktualizujesz tabelę. Musisz do tych "innych JFramów" przekazać referencję do głównego okna i w wierszu program.test();

 skorzystać z tej referencji.
0

Może nie do końca dobrze napisał. Mam główne okno programu, w którym jest jTable1, mam button "Dodaj", po którego kliknięciu pokazuje się nowe okno, z texFiledami, w które należy wpisać dane. W nowo wyświetlonym oknie znajduje się przycisk "Zapisz", po jego kliknięciu wprowadzono dane zostają zapisane do bazy danych i okno się wyłącza this.Dispose(). Po kodzie, który dodaje dane do bazy wprowadziłem Program program = new Program() i potem program.test(), czyli teoretycznie najpierw dodaję dane do bazy, potem odświeżam jTable żeby wyświetliło mi nowo wprowadzone dane i zamykam okno dodawania. Dane się dodają, ale taki sposób niestety nie aktualizuje mi danych w jTable, ale np. gdy dodaj w głównym oknie button "Refresh" i podepnę kod do zaktualizowania danych w jTable to po kliknięciu buttona wszystko ładnie odświeża, czyli jakbym czegoś nie przekazywał do tego drugiego jFrama, czegoś mi brakuje?

0

Przeczytaj jeszcze raz, ze zrozumieniem, mój post. Odświeżasz JTable w innym oknie - tym które utworzyłeś poleceniem Program program = new Program();. W wierszu xxx.test(); xxx musi być referencją do okna, które istniało wcześniej, a nie do nowo tworzonego okna.

1 użytkowników online, w tym zalogowanych: 0, gości: 1