Toon posts:

[Java] JDialog verdwijnt achter IE-scherm

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een probleem met een JDialog. Ik maak in ergens in een method eerst een UserDialog, dit werkt gewoon. Als er in die UserDialog vervolgens op OK wordt gedrukt, dan roept ie een andere method aan.
Deze method laat een JOptionPane.showMessageDialog() zien. Op dit moment verdwijnt echter de UserDialog; althnas, hij is er nog wel, je ziet hem nl. weer als je het IE-scherm(het is een applet) minimaliseerd, maar ik wil hem gewoon zichtbaar houden. Als de JOptionPane afgesloten wordt, moet die UserDialog dus ook weer vooraan staan.
Ik dacht dit makkelijk te kunnen oplossen m.b.v. eenDialog.toFront(), maar dit werkt ook niet. Ik heb ook geprobeerd er nogmaal een show() neer te zetten, ook zonder resultaat.

Dit is globaal mijn code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class MainClass extends JApplet
{
  private UserDialog eenDialog;

  public void eenMethod()
  {
    eenDialog = new UserDialog();
    eenDialog.show();
  }

  public void eenAndereMethod()
  {
    JOptionPane.showMessageDialog(this, "Een bericht");
    // Hier verdwijnt de UserDialog...
  }

  private class UserDialog extends JDialog
  {
    public UserDialog()
    {
    // Beschrijving van een dialog...
    }
    private class ActionReader implements ActionListener
    {
    public void actionPerformed(ActionEvent event)
    {
      Object source = event.getSource();
      if(source == ok) eenAndereMethod();
      if(source == cancel) dispose();
    }
    }
  }
}

Iemand een oplossing :?

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

this.tofront();

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Je moet de parent van die JDialog nog even instellen :) anders kan je dit soort dingen krijgen (schermen zonder ouders die ergens achter vallen). Kijk maar eens bij de constructor van JDialog.

Verwijderd

Topicstarter
Hoe :?

Als parent kun je toch alleen objecten van het type Dialog of Frame instellen, maar die gebruik ik nergens :?

wasigh --> zoals ik al schreef, dat werkte niet :)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Het is sowieso altijd wel netjes om een super aanroep te zetten in de constructor. Je denk er zo gelijk beter over na :) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
Dat is idd mooier, dus dat heb ik bijdeze ook maar even gedaan :)

Alleen m'n probleem is daarmee nog niet opgelost. Ik kan toch alleen maar een Frame of een Dialog als parent nemen, en geen JApplet. Of kan ik daar een Frame-object uithalen ofzow. :?

Zo ja, hoe dan :?

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Je kunt de message dialog toch de user-dialog meegeven als parent? Dan blijft je user-dialog (JDialog) denk ik wel staan :) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
Zo dus:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class MainClass extends JApplet
{
  private UserDialog eenDialog;
  public void eenMethod()
  {
    eenDialog = new UserDialog(eenDialog);
    eenDialog.show();
  }

  public void eenAndereMethod()
  {
    JOptionPane.showMessageDialog(this, "Een bericht");
    // Hier verdwijnt de UserDialog...
  }

  private class UserDialog extends JDialog
  {
    public UserDialog(UserDialog parent)
    {
    super();
    // Beschrijving van een dialog...
    }
    private class ActionReader implements ActionListener
    {
    public void actionPerformed(ActionEvent event)
    {
      Object source = event.getSource();
      if(source == ok) eenAndereMethod();
      if(source == cancel) dispose();
    }
    }
  }
}

Hij compiled um wel, maar die JDialog verdwiijnt nog steeds...

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Nope. je geeft 'this' mee. Dat is een JApplet en geen UserDialog (JDialog dus). Je moet zorgen dat de JDialog als parent wordt gebruikt :) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private class UserDialog extends JDialog
  {
    public UserDialog(JDialog parent)
    {
    super(parent); //hierdoor vallen je schermen niet meer weg :)
    // Beschrijving van een dialog...
    }
    private class ActionReader implements ActionListener
    {
    public void actionPerformed(ActionEvent event)
    {
      Object source = event.getSource();
      if(source == ok) eenAndereMethod();
      if(source == cancel) dispose();
    }
    }
  }

De vraag is of een JApplet als parent wil draaien :)
code:
1
2
3
4
5
public void eenMethod()
  {
    eenDialog = new UserDialog(this);
    eenDialog.show();
  }

maar this is een JApplet en geen Dialog of Frame denk niet dat dit gaat werken :)

Verwijderd

Topicstarter
Dat werkt niet...

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Alarmnummer: De vraag is of een JApplet als parent wil draaien :)
Nee dus, JApplet is geen Dialog of Frame en die heeft een JDialog nodig als parent.

Maar als ik het goed zie, is dit niet het probleem:

het JOptionPane wordt nu geopend met de JApplet als parent. Hierdoor voor de JDialog weg. Het JOptionPane moet daarom worden gebruikt met de JDialog als parent. Dan zou het moeten werken :) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
mbravenboer, you're the best :)
code:
1
JOptionPane.showMessageDialog(eenDialog, "Een bericht");

... en het probleem is opgelost :)

Bedankt :)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
minne: mbravenboer, you're the best :)
Goh, ik scoor wel punten vandaag ;) .
Bedankt :)
Graag gedaan :) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment

Pagina: 1