Odswiezanie jTable z innego okna.

0

Hej wszystkim,
uczę się programować w Javie więc wymyśliłem sobie program do napisania dla firm wysyłających pracowników do opiek. :)
Program korzysta z Derby embedded gdzie są utworzone trzy tabele: pierwsza przechowuje listę pracowników, druga listę rodzin, trzecia lista, który pracownik do jakiej rodziny został wysłany. Listy są wyświetlane w różnych oknach w różnych tabelach. Czy ktoś mógłby mi wyjaśnić jak powinien przebiegać przepływ informacji z bazy danych do jTable oraz jak dodawać nowe dane do tabeli?? Obecnie to wygląda tak, że przy uruchomieniu programu dane z bazy danych lecą do klasy modelu a później jTable zostaje uzupełniona z tej klasy modelu. Natomiast jak zapisuje nowe dane to bezpośrednio do bazy danych. Zasadniczo to działa ale nie odświeża mi się jTable po dodaniu wiersza mimo załadowania modelu od nowa.Nowe dane widzę dopiero po ponownym uruchomieniu programu.

Program ma już trochę linijek wiec jak ktoś by się zdecydował rzucić okiem to podaje link: github Janki19/WorkOffice.git i proszę o wyrozumiałość , UCZĘ SIĘ :) ale z chęcią posłucham wszystkich uwag co do kodu :)

I chodzi o to,że łącząc pracownika z rodziną w oknie klasy LinkFrame dane lecą do bazy danych i chciałbym żeby się wyświetlały od razu w tabeli w oknie klasy MainMenu.

Pozdrawiam

0

Do kodu nie zaglądałem, Standardowo to aktualizujesz model i wywołujesz na rzecz modelu metodę fireTableDataChanged().

0

moja klasa modelu wygląda tak:
' ' '
public class LinkModel {

private String eId, eName, eSurname, fId, fName, fSurname, dataFrom, dataTo;
private int id;

public LinkModel(int id, String eId, String eName, String eSurname, String fId, String fName, String fSurname,
		String dataFrom, String dataTo) {

	this.id = id;
	this.eId = eId;
	this.eName = eName;
	this.eSurname = eSurname;
	this.fId = fId;
	this.fName = fName;
	this.fSurname = fSurname;
	this.dataFrom = dataFrom;
	this.dataTo = dataTo;

}

public int getId() {
	return id;
}

public String getEid() {
	return eId;
}

public String getEname() {
	return eName;
}

public String getEsurname() {
	return eSurname;
}

public String getFid() {
	return fId;
}

public String getFName() {
	return fName;
}

public String getFsurname() {
	return fSurname;
}

public String getFromDate() {
	return dataFrom;
}

public String getToDate() {
	return dataTo;
}

}
'''
i ta metoda nie działa albo ja coś źle robię :)

0

Na pewno robisz źle, model w JTable, to dane do wyświetlenia https://docs.oracle.com/javase/8/docs/api/javax/swing/table/TableModel.html, zatem w modelu musi tkwić jakaś kolekcja (ewentualnie generator danych).

0

No właśnie staram się ogarnąć TableAbstractModel ale nie mam zielonego pojęcia jak to połączyć z bazą danych i jak wypełnić tabelę danymi z bazy danych. Kurde cały dzień nad tym siedzę :) i mi coś nie wychodzi.

0

Hej to jeszcze ja :) Ogarnąłem trochę AbstractTableModel no i umiem używając tego modelu wypełnić tabelę danymi . No ale teraz nie wiem jak mam dodać nowe dane po naciśnięciu buttona.
Dodam że jtable współpracuje z bazą danych. Wiec po naciśnięciu powinienem dane z pól tekstowych przesłać do bazy danych bezpośrednio a później jakoś odświeżyć model czy przesłać do bazy danych i do modelu jednocześnie?? Chodzi mi o to żeby dodać dane do bazy danych i żeby jTable się odświeżył. A nie wiem jak to powinno się robić prawidłowo.

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