[java] panel-size detecteren met borderlayout

Pagina: 1
Acties:

  • Scorpion
  • Registratie: April 2000
  • Laatst online: 18-01-2024

Scorpion

not to lame to read BitchX.doc

Topicstarter
hoe kan ik de width en height van een panel detecteren als ik em add met een borderlayout

e.g.
code:
1
2
myPanel plop = new myPanel(this);
add(myPanel,BorderLayout.CENTER);

ik krijg namelijk alleen 0 als width en height als ik de size van de panel opvraag.

Verwijderd

die size krijgt ie geloof ik pas na de eerste paint

  • CyBoB
  • Registratie: Januari 2001
  • Laatst online: 24-12-2025

CyBoB

.::BURB::.

nadat je de show() methode hebt aangeroepen kan je volgens mij pas de hoogte en breedte opvragen

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Het formaat van de panels wordt ingesteld door het aanroepen van de pack() methode. Als je deze aanroept wordt de layout van een window verzorgd, waarbij zoveel mogelijk rekening zal worden gehouden met de preferred-size van de diverse componenten.

Na de aanroep van de pack methode kan je de size opvragen. Uiteraard kan je de preferred-size al vragen voordat er een LayoutManager is toegepast.

Als je trouwens een show() doet zonder een pack() zal je window waarschijnlijk 0,0 groot zijn en zal er dus niets zichtbaar zijn....

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


  • Scorpion
  • Registratie: April 2000
  • Laatst online: 18-01-2024

Scorpion

not to lame to read BitchX.doc

Topicstarter
Op dinsdag 19 maart 2002 15:04 schreef mbravenboer het volgende:
Het formaat van de panels wordt ingesteld door het aanroepen van de pack() methode. Als je deze aanroept wordt de layout van een window verzorgd, waarbij zoveel mogelijk rekening zal worden gehouden met de preferred-size van de diverse componenten.

Na de aanroep van de pack methode kan je de size opvragen. Uiteraard kan je de preferred-size al vragen voordat er een LayoutManager is toegepast.

Als je trouwens een show() doet zonder een pack() zal je window waarschijnlijk 0,0 groot zijn en zal er dus niets zichtbaar zijn....
pack is voor frame, ik gebruik een applet. -> applet zit ie niet in... (window.pack())

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Hum een edit ;) .

Ik wilde net dit voorbeeld geven dat show zonder pack wel degelijk niet goed werkt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import javax.swing.*;

public class Test {
    public static void main(String[] ps) {
      JFrame frame1 = new JFrame();
      frame1.getContentPane().add(new JLabel("Test sdvsdgdgdggdsgdgsdg"));
      frame1.show();

      JFrame frame2 = new JFrame();
      frame2.getContentPane().add(new JLabel("Test dgsdgsdggsdggsdgsgsdgsgsdg"));
      frame2.pack();
      frame2.show();

    }
}

Maar goed, dat is dus irrelevant...
Scorpion: ik gebruik een applet
Een applet heeft min of meer een vast formaat, dus pack is dan inderdaad niet zo nuttig.... Je moet zorgen dat de layout-manager wordt aangeroepen, hiervoor kan je validate gebruiken. Overigens is de preferred-size wellicht ook wat voor je, maar er is dus geen garantie dat dat ook de echte size wordt..

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


  • Scorpion
  • Registratie: April 2000
  • Laatst online: 18-01-2024

Scorpion

not to lame to read BitchX.doc

Topicstarter
Op dinsdag 19 maart 2002 15:21 schreef mbravenboer het volgende:
Hum een edit ;) .
:)
[..]

Een applet heeft min of meer een vast formaat, dus pack is dan inderdaad niet zo nuttig.... Je moet zorgen dat de layout-manager wordt aangeroepen, hiervoor kan je validate gebruiken. Overigens is de preferred-size wellicht ook wat voor je, maar er is dus geen garantie dat dat ook de echte size wordt..
Hmmz, als ik getHeight() pak in de paint-method, pakt hij deze wel goed. Is er een event handler die de size kan zetten wanneer deze beschikbaar is?
Pagina: 1