[Java lista] Swing kérdés

istvan.ketler at lhsystems.com istvan.ketler at lhsystems.com
2011. Ápr. 7., Cs, 13:33:52 CEST


Szia,

swing componens csak az EDT-ben módosítható. Viszont ahogy értem, a Timer-ben beolvasod az adatot, és a kész adattal akarod megváltoztatni a table modelt. Ha így van, akkor nem kell SwingWorker, helyette pl. így néz ki a timer task:

// TODO adat beolvasása
EventQueue.invokeLater(
	new Runnable() {
		public void run() {
			// TODO table model adatfrissítés (+ data change event kilövése)
		}
	}
);
// TODO timer újra felhúzása

Üdvözlettel,

Iván

István Ketler
Team Leader 
Lufthansa Systems Hungaria Kft. 
Airline Management Solutions 
- Schedule & Revenue Management 
- Business Intelligence & Database Solutions
Neumann János u. 1/e
1117 Budapest
Hungary 
Tel: +36 1 887-2815 
Fax: +36 1 887-2977
Mobile: +36 30 600-4936 
Room: Infopark E, Room LH1-31 
e-mail: istvan.ketler at lhsystems.com 
Internet: www.LHsystems.hu



 
Sitz der Gesellschaft / Corporate Headquarters: Lufthansa Systems Hungaria Kft, Budapest, Fövarosi Birosag 01-09-463417
Geschaeftsfuehrung / Management Board: Monika Houck

-----Original Message-----

From: Mester József [mailto:mesterj at freeweb.hu] 
Sent: Thursday, April 07, 2011 11:29 AM
To: javalist at javagrund.hu
Cc: KETLER, ISTVAN
Subject: Re: [Java lista] Swing kérdés

Szia

Köszönöm a részletes választ.

Jelenleg így néz ki.
Az adatbázis fixen 300 rekord hosszú. Viszont az adatok akár teljesen 
meg is változhatnak benne.
Tehát minden alkalommal teljesen újra kell olvasnom az egész táblát.
JPA-val oldom meg az olvasást és mindent behúzok teljesen.

Dao osztály csinált List-et
TableModel csinál a List-ből datamodel objectet egy Timerben (swing) 
updatelem az JTable datamodeljét .
Az EDT ezt nem nagyon szereti én teljesen erre fogtam a getValueat() 
hülyeségeket . Mert olyat is csinál a program, hogy látom, hogy 
megváltozik az adat a JTable-ban (tudom, hogy az adatbázisban 
megváltozott) erre a változás után párszor feldobja az elavult adatot és 
csak néhány oda-vissza váltogatás után javul meg és ezt tuti az EDT 
csinálja.
EDT-be belefúrtam magam . Most úgy látom, hogy SwingWorker hívással 
kellene updatelni a JTable modellt , hogy ne vesszen össze az EDT-ben 
futó ListSelectionListenerrel. De a SwingWorker tudásom még biztos hagy 
maga után kívánnivalókat mivel sehogyan sem bírom időzítve elindítani.
Ráadásul , hogy szebb legyen az élet a 300 sornak automatikusan 
scrollozódni kell a képernyőn mivel olvashatóan egyszerre csak kb. 30 
sor fér ki a képernyőre egyszerre.
A 10 percenkénti adatbázis újra-olvasást muszáj megcsinálni. Pedig 
hülyeség (megrendelő) mivel a 300 sor annyi idő alatt végig sem fog 
menni azzal a léptetéssel ahogy szeretnék. Főleg nem ha kiválasztanak 
sorokat mert addig áll a léptetés. Tehát nagyjából az utolsó 60-120 sort 
sosem fogják látni. De erre majd rájön a kedves megrendelő.

Tehát a kérdés: Hogy a rákban lehet SwingWorkert időzítve meghívni olyan 
céllal, hogy a JTable modelljét módosítsa?

Józsi





További információk a(z) Javalist levelezőlistáról