/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Problemer med modal JDialog
Fra : Daniel Jacobsen


Dato : 29-05-02 20:20

Hej der!

Jeg har et (stort) problem i min GUI-programmering:

Hvis man fra en JFrame ved tryk på en knap åbner en JDialog (altså i det
færdige program), og lige efter åbner et andet program, f.eks. MicroSoft
Word, og arbejder lidt der. Når man så vender tilbage til sit Java-program,
er dialogen forsvundet om bag ved framen. Da dialogen er modal, kan man slet
ikke komme i kontakt med programmet.

Det eneste man kan gøre er at vælge progrrammet ved brug af Alt+Tab. Så
kommer dialogen ovenpå igen. Det er bare ikke særlig optimalt, især ikke
hvis jeg øsnker at udgive mit program. Langt de fleste brugere vil ikke vide
hvad de skal gøre og tro det er en fejl i programmet.

Nogen der ved, hvordan jeg løser dette problem, så dialogen IKKE hopper om
bag ved framen, hvis programmet mister fokus??

Daniel J.



 
 
Jan Oksfeldt Jonasen (29-05-2002)
Kommentar
Fra : Jan Oksfeldt Jonasen


Dato : 29-05-02 19:57

Daniel Jacobsen <dj@g-a-f.dk> wrote:

> Hej der!
>
> Jeg har et (stort) problem i min GUI-programmering:
>
> Hvis man fra en JFrame ved tryk på en knap åbner en JDialog (altså i det
> færdige program), og lige efter åbner et andet program, f.eks. MicroSoft
> Word, og arbejder lidt der. Når man så vender tilbage til sit Java-program,
> er dialogen forsvundet om bag ved framen. Da dialogen er modal, kan man slet
> ikke komme i kontakt med programmet.
>
> Det eneste man kan gøre er at vælge progrrammet ved brug af Alt+Tab. Så
> kommer dialogen ovenpå igen. Det er bare ikke særlig optimalt, især ikke
> hvis jeg øsnker at udgive mit program. Langt de fleste brugere vil ikke vide
> hvad de skal gøre og tro det er en fejl i programmet.
>
> Nogen der ved, hvordan jeg løser dette problem, så dialogen IKKE hopper om
> bag ved framen, hvis programmet mister fokus??
>
Der er uden tvivl en bedre måde, men et forslag er:
Før åbning af dialogen tilføjer du en java.awt.MouseListener til din
frame.

JFrame mitVindue.....
//Nu skal der åbnes en modal dialog
JDialog dialog....
MouseListener ml = new MouseAdapter()
{
public void mouseEntered(MouseEvent e)
{
dialog.toFront();
}
};
mitVindue.addMouseListener(ml);
dialog.show();
mitVindue.removeMouseListener(ml);

Den anonyme implementation af MouseAdapter/MouseListener registrere når
musen kommer ind i dit vindue, når dette sker smider den dialog øverst
af alle vinduer. Dette kan dog skabe nogle morsomme effekter, hvis du
har flere dialoger åbne på samme tid.

--
Mvh/re Jan Jonasen
jonasen (at) it (dot) dk

If I wanted culture, I'd eat yogurt. Ikke kun Tuborg har noget i gære.

Lars Dam (29-05-2002)
Kommentar
Fra : Lars Dam


Dato : 29-05-02 19:55

On Wed, 29 May 2002 12:19:38 -0700, "Daniel Jacobsen" <dj@g-a-f.dk>
wrote:

>Hej der!
>
>Jeg har et (stort) problem i min GUI-programmering:
>
>Hvis man fra en JFrame ved tryk på en knap åbner en JDialog (altså i det
>færdige program), og lige efter åbner et andet program, f.eks. MicroSoft
>Word, og arbejder lidt der. Når man så vender tilbage til sit Java-program,
>er dialogen forsvundet om bag ved framen. Da dialogen er modal, kan man slet
>ikke komme i kontakt med programmet.

Mit gæt er at du skal give frame'en med som parameter til
konstruktøren af dialogen?

vh. ld


Daniel Jacobsen (30-05-2002)
Kommentar
Fra : Daniel Jacobsen


Dato : 30-05-02 06:07

Det gør jeg også :)



Lars Dam (29-05-2002)
Kommentar
Fra : Lars Dam


Dato : 29-05-02 21:55

On Wed, 29 May 2002 22:07:13 -0700, "Daniel Jacobsen" <dj@g-a-f.dk>
wrote:

>Det gør jeg også :)

Bare lige for at være sikker:

Du har vel lavet din egen dialog klasse; husker du at kalde
super(frame) i konstruktøren?

vh. ld


Daniel Jacobsen (30-05-2002)
Kommentar
Fra : Daniel Jacobsen


Dato : 30-05-02 08:20

Jada, jeg laver min GUI i JBuilder (6.0 Ent), så alle de ting er klaret
automatisk, men jo, jeg har tjekket at framen er parent for dialogen. Jeg
ved koden er korrekt. :)



Daniel Jacobsen (01-06-2002)
Kommentar
Fra : Daniel Jacobsen


Dato : 01-06-02 04:26

Ve' du hva? Alle de steder jeg initerer en dialog har jeg skrevet "null" ved
frame i stedet for "this". Så tror da pokker det volder problemer.
Du havde ret :) tak for hjælpen.



Lars Dam (31-05-2002)
Kommentar
Fra : Lars Dam


Dato : 31-05-02 20:07

On Fri, 31 May 2002 20:26:03 -0700, "Daniel Jacobsen" <dj@g-a-f.dk>
wrote:

>Ve' du hva? Alle de steder jeg initerer en dialog har jeg skrevet "null" ved
>frame i stedet for "this". Så tror da pokker det volder problemer.
>Du havde ret :) tak for hjælpen.

Hvad er det man siger? Been there, done it

vh. ld



Brian Matzon (31-05-2002)
Kommentar
Fra : Brian Matzon


Dato : 31-05-02 21:13

"Lars Dam" <larsdamXXspamXXprotectionXX@post2.tele.dk> wrote in message
news:5diffuk2p64dgpnusrfr574vgsv2cbchj0@4ax.com...
> On Fri, 31 May 2002 20:26:03 -0700, "Daniel Jacobsen" <dj@g-a-f.dk>
> wrote:
>
> >Ve' du hva? Alle de steder jeg initerer en dialog har jeg skrevet "null"
ved
> >frame i stedet for "this". Så tror da pokker det volder problemer.
> >Du havde ret :) tak for hjælpen.
>
> Hvad er det man siger? Been there, done it
Næ - Been there, done that, men så er der vist oxo
dømt flueknepperi ;) - men det er jo netop essensen i denne
NG, vi har alle prøvet alle de underlige ting, som vi så kan
belære andre om...

/Brian Matzon



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste