[Java] Componenten verdwijnen na ze te hebben verplaatst

Pagina: 1
Acties:

  • gyarnoc
  • Registratie: December 2003
  • Laatst online: 29-04 11:47
Hey,

Ik heb een JFrame die er na het opstarten als volgt uitziet:

Afbeeldingslocatie: http://home.hccnet.nl/f.m.boekhorst/1.JPG

Alles gaat OK tot je op die grote O voor maximize ramt. Dit is de code die ik gebruik om te maximaliseren:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
if (source == maximize) {
 
            if (this.getBounds().width != (int)Toolkit.getDefaultToolkit().getScreenSize().getWidth() & this.getBounds().height != (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight()) {
                this.setBounds(0, 0, (int)Toolkit.getDefaultToolkit().getScreenSize().getWidth(), (int)Toolkit.getDefaultToolkit().getScreenSize().getHeight());
 
            } else {
 
                this.setBounds(Integer.parseInt(p.getProperty("screen.x_pos")), Integer.parseInt(p.getProperty("screen.y_pos")), Integer.parseInt(p.getProperty("screen.x_bound")), Integer.parseInt(p.getProperty("screen.y_bound")));
            }
            
            maximize.setIcon(over_maximize);
            updateScreen();
        }


En dit is de code voor updateScreen:

code:
1
2
3
4
5
6
7
8
public void updateScreen() {
        
        // Reposition the components
        
        close.setBounds(this.getBounds().width - 23, 0,  23, 26);
        maximize.setBounds(this.getBounds().width - 47, 0,  24, 26);
        minimize.setBounds(this.getBounds().width - 69, 0,  22, 26);
    }


Wanneer ik op de maximize knop druk, wordt hij wel fatsoenlijk ge-resized en de componenten verplaatst. Ik weet zeker dat de componenten goed staan maar toch zijn ze verdwenen. Hier is een screenshot van hoe het eruit ziet. (Ik heb de X knop ff naar de rand verplaatst om te laten zien wat ik bedoel)

Afbeeldingslocatie: http://home.hccnet.nl/f.m.boekhorst/2.JPG

Wat doe ik hier verkeerd?

Alvast hartelijk dank :)

Verwijderd

Probeer eens validate(), of tenminste repaint()
(validate misschien niet nodig zonder layout manager)

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 15:38

Robtimus

me Robtimus no like you

Je kunt trouwens beter setLocation gebruiken ipv setBounds (behalve dan de eerste keer). Als je knoppen ooit van grootte veranderen moet je nu meerdere plekken de grootte aanpassen (overal waar setBounds staat). Als je setLocation gebruikt dan verplaats je de component alleen maar, zonder de grootte opnieuw te definieren.

More than meets the eye
There is no I in TEAM... but there is ME
system specs