Just nu i M3-nätverket
Gå till innehåll

bevakning av ett GUI


Monshi

Rekommendera Poster

Back to basic.

 

Helt fritt, hur skulle ni lösa detta?

Ett GUI med en mängd (text) fält där data matas in. Dessa fälts data motsvaras av uppgifter i en instans av en klass. Dvs när datat i fältet ändras ska motsvarande uppgift i instansen av klassen ändras.

 

Omedelbart? Ja gärna, men inte nödvändigt. Instansen finns i en lista med flera instanser av samma objekt, uppdatering måste ske innan programmet går vidare eller ett annat objekt får fokus i listan.

 

Det borde finnas en "standardmetod" att göra detta på, men jag känner inte till den. Har ett sätt jag gör det nu, men det fungerar inte klockrent så jag tänkte höra vad mer erfarna programmerare har att säga om detta.

 

behöver ni mer information för att ge förslag? Säg då det...

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

[inlägget ändrat 2005-04-04 16:10:20 av Monshi]

Länk till kommentar
Dela på andra webbplatser

Inga svar :(

 

Nåja, jag har löst det.

 

Kort, såhär har jag gjort.

Ett GUI med flera paneler på.

Varje panel har ett antal kontroller, comboboxar eller textfält, där data kan matas in.

Till varje kontroll är en change-listener kopplad, en listener som är definierade i en basklass som varje panel är skapad ifrån.

Till varje textfält finns en version av ett PlainDocument kopplad, också denna i basklassen Denna tar hand om all inmatning i alla textfält och validerar att den är korrekt (enbart tal större eller lika med noll, inga bokstäver).

Med dessa två vet jag när något ändrats i gränssnittett. Då körs en uppdatering. (vissa mindre begränsningar i när/om den körs finns) Uppdatering sker av värdena i alla fält på panelen eftersom jag ej orkar bry mig om att kolla vilken av kontrollerna som ändrats, men bara den panel där något ändrats tas med i uppdateringen.

 

Prövade med FocusLost, men det ville sig inte riktigt. Alla tillfälen då jag tyckt att en uppdatering borde ha körts kördes inte. Med händelserna ovan kan jag vara helt säker på att fånga alla ändringar omedelbart. Får se om jag försöker igen med FocusLost, kan spara en del rundor i uppdateringsrutinen. Jag har en fokushanterare, även denna i basklassen, som lätt kan byggas ut.

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...