|
| Opdatere JTable Fra : Peter |
Dato : 16-04-03 13:12 |
|
Jeg har en Gui med et Jtable hvor i der bliver listet nogle data, disse data
bliver fundet af en "tråd" der står og søger. Problemet er bare at data'ne i
denne JTable først bliver vist når søgningen er færdig. Hvordan laver man så
de bliver vist efterhånden som de bliver fundet.
| |
Peter Lind (16-04-2003)
| Kommentar Fra : Peter Lind |
Dato : 16-04-03 15:47 |
|
"Peter" <dj_pnr@hotmail.com> wrote in message
news:3e9d489d$1@news.wineasy.se...
> Jeg har en Gui med et Jtable hvor i der bliver listet nogle data, disse
data
> bliver fundet af en "tråd" der står og søger. Problemet er bare at data'ne
i
> denne JTable først bliver vist når søgningen er færdig. Hvordan laver man
så
> de bliver vist efterhånden som de bliver fundet.
Hejsa
Som jeg skrev som svar til dit andet spørgsmål (om design), så gælder det om
at have en observer.
Din JTable har en TableModel - måske bruger du bare en DefaultTableModel,
men det vil næsten altid være en fordel at lave sin egen subklasse til
AbstractTableModel.
I den kan du kalde fireTableDataChanged() eller en af de andre fireXXX
metoder, og så vil din JTable, der er listener på denne TableModel,
automatisk opdatere sig selv.
mvh
Peter Lind
| |
Peter (17-04-2003)
| Kommentar Fra : Peter |
Dato : 17-04-03 09:24 |
|
Hej
Jeg har lavet en sub klasse til AbstractTableModel som kalder
fireTableRowsInserted(liste.size(), liste.size()); hvergang der bliver lagt
et nyt object i listen. Men min JTable bliver ikke opdateret før søgningen
er afsluttet.
//Peter
"Peter Lind" <peterlind@hotmail.com> skrev i en meddelelse
news:b7jqfi$1ld9$1@news.cybercity.dk...
>
> "Peter" <dj_pnr@hotmail.com> wrote in message
> news:3e9d489d$1@news.wineasy.se...
> > Jeg har en Gui med et Jtable hvor i der bliver listet nogle data, disse
> data
> > bliver fundet af en "tråd" der står og søger. Problemet er bare at
data'ne
> i
> > denne JTable først bliver vist når søgningen er færdig. Hvordan laver
man
> så
> > de bliver vist efterhånden som de bliver fundet.
>
> Hejsa
>
> Som jeg skrev som svar til dit andet spørgsmål (om design), så gælder det
om
> at have en observer.
> Din JTable har en TableModel - måske bruger du bare en DefaultTableModel,
> men det vil næsten altid være en fordel at lave sin egen subklasse til
> AbstractTableModel.
> I den kan du kalde fireTableDataChanged() eller en af de andre fireXXX
> metoder, og så vil din JTable, der er listener på denne TableModel,
> automatisk opdatere sig selv.
>
> mvh
> Peter Lind
>
>
| |
Peter Lind (17-04-2003)
| Kommentar Fra : Peter Lind |
Dato : 17-04-03 10:54 |
|
"Peter" <peter@mail.inet.dk> wrote in message
news:3e9e649d$0$24686$edfadb0f@dread14.news.tele.dk...
> Hej
> Jeg har lavet en sub klasse til AbstractTableModel som kalder
> fireTableRowsInserted(liste.size(), liste.size()); hvergang der bliver
lagt
> et nyt object i listen.
Fornemt - det lyder helt rigtigt...
> Men min JTable bliver ikke opdateret før søgningen er afsluttet.
Hmm...
Nu skriver du godt nok "tråd" i "" - er det en rigtig thread, eller er det
bare noget kode der bliver kaldt direkte fra en actionListener eller
lignende i din GUI ? For hvis det er, så bliver GUI'en først opdateret når
actionListeneren er færdig. Det kan du teste meget nemt ved at trække et
andet vindue ind over din GUI - hvis alt bliver gråt/slettet, så er det
fordi ui-event-tråden er igang med at lave din søgning.
Så det skal laves i en rigtig thread, som så startes af actionListeneren,
hvorefter denne straks returnerer.
Hvis det ikke er det, der er problemet, så skriv endelig igen.
mvh
Peter Lind
> "Peter Lind" <peterlind@hotmail.com> skrev i en meddelelse
> news:b7jqfi$1ld9$1@news.cybercity.dk...
> >
> > "Peter" <dj_pnr@hotmail.com> wrote in message
> > news:3e9d489d$1@news.wineasy.se...
> > > Jeg har en Gui med et Jtable hvor i der bliver listet nogle data,
disse
> > data
> > > bliver fundet af en "tråd" der står og søger. Problemet er bare at
> data'ne
> > i
> > > denne JTable først bliver vist når søgningen er færdig. Hvordan laver
> man
> > så
> > > de bliver vist efterhånden som de bliver fundet.
> >
> > Hejsa
> >
> > Som jeg skrev som svar til dit andet spørgsmål (om design), så gælder
det
> om
> > at have en observer.
> > Din JTable har en TableModel - måske bruger du bare en
DefaultTableModel,
> > men det vil næsten altid være en fordel at lave sin egen subklasse til
> > AbstractTableModel.
> > I den kan du kalde fireTableDataChanged() eller en af de andre fireXXX
> > metoder, og så vil din JTable, der er listener på denne TableModel,
> > automatisk opdatere sig selv.
> >
> > mvh
> > Peter Lind
> >
> >
>
>
| |
Peter (17-04-2003)
| Kommentar Fra : Peter |
Dato : 17-04-03 12:42 |
|
Selve søgningen køre i en tråd for sig selv (min GUI bliver ikke grå når jeg
trækker noget hen over den). Der fra hvor min søgning foregår skriver jeg
også i GUI hvor mange poster der er fundet, og det virker fint (Det bliver
skrevet med det samme), men min JTable bliver først sat efter søgningen.
//Peter
"Peter Lind" <peterlind@hotmail.com> skrev i en meddelelse
news:b7ltm2$1115$1@news.cybercity.dk...
>
> "Peter" <peter@mail.inet.dk> wrote in message
> news:3e9e649d$0$24686$edfadb0f@dread14.news.tele.dk...
> > Hej
> > Jeg har lavet en sub klasse til AbstractTableModel som kalder
> > fireTableRowsInserted(liste.size(), liste.size()); hvergang der bliver
> lagt
> > et nyt object i listen.
>
> Fornemt - det lyder helt rigtigt...
>
> > Men min JTable bliver ikke opdateret før søgningen er afsluttet.
>
> Hmm...
> Nu skriver du godt nok "tråd" i "" - er det en rigtig thread, eller er det
> bare noget kode der bliver kaldt direkte fra en actionListener eller
> lignende i din GUI ? For hvis det er, så bliver GUI'en først opdateret når
> actionListeneren er færdig. Det kan du teste meget nemt ved at trække et
> andet vindue ind over din GUI - hvis alt bliver gråt/slettet, så er det
> fordi ui-event-tråden er igang med at lave din søgning.
> Så det skal laves i en rigtig thread, som så startes af actionListeneren,
> hvorefter denne straks returnerer.
>
> Hvis det ikke er det, der er problemet, så skriv endelig igen.
>
> mvh
> Peter Lind
>
> > "Peter Lind" <peterlind@hotmail.com> skrev i en meddelelse
> > news:b7jqfi$1ld9$1@news.cybercity.dk...
> > >
> > > "Peter" <dj_pnr@hotmail.com> wrote in message
> > > news:3e9d489d$1@news.wineasy.se...
> > > > Jeg har en Gui med et Jtable hvor i der bliver listet nogle data,
> disse
> > > data
> > > > bliver fundet af en "tråd" der står og søger. Problemet er bare at
> > data'ne
> > > i
> > > > denne JTable først bliver vist når søgningen er færdig. Hvordan
laver
> > man
> > > så
> > > > de bliver vist efterhånden som de bliver fundet.
> > >
> > > Hejsa
> > >
> > > Som jeg skrev som svar til dit andet spørgsmål (om design), så gælder
> det
> > om
> > > at have en observer.
> > > Din JTable har en TableModel - måske bruger du bare en
> DefaultTableModel,
> > > men det vil næsten altid være en fordel at lave sin egen subklasse til
> > > AbstractTableModel.
> > > I den kan du kalde fireTableDataChanged() eller en af de andre fireXXX
> > > metoder, og så vil din JTable, der er listener på denne TableModel,
> > > automatisk opdatere sig selv.
> > >
> > > mvh
> > > Peter Lind
> > >
> > >
> >
> >
>
>
| |
Lars Dam (17-04-2003)
| Kommentar Fra : Lars Dam |
Dato : 17-04-03 10:24 |
|
On Thu, 17 Apr 2003 10:23:39 +0200
"Peter" <peter@mail.inet.dk> wrote:
> Hej
> Jeg har lavet en sub klasse til AbstractTableModel som kalder
> fireTableRowsInserted(liste.size(), liste.size()); hvergang der bliver lagt
> et nyt object i listen. Men min JTable bliver ikke opdateret før søgningen
> er afsluttet.
> //Peter
Det lyder som om at din søgning kører i default tråden. Dvs. at den tråd som normalt står for opdatering af skærmbilleder.. Den får ikke lov til at komme til førend din søgning er færdig.
Løsningen er at lade søgningen køre i sin egen tråd.
vh. ld
| |
|
|