Hallo,
Na enkele uren allerlei documentatie doorgelezen te hebben over de verschillende soorten LayoutManagers die er bestaan in JAVA is de GridBagLayout denk ik de beste keuze als je je layout zo flexibel mogelijk wilt hebben. Aangezien het ontzettend veel overeenkomsten vertoond met een HTML-tabel is het relatief eenvoudig te doorgronden.
Voor zover ik het kan zien stel je eerst al je eigenschappen in op je constraints om hem vervolgens toe te voegen aan je panel.
gridx bepaalt de positie op de x-as
gridy bepaalt de positie op de y-as
weight stelt de minimumgrootte vast???
en met fill en anchor schijn je de manier van schaling (boven, beneden e.d.) te kunnen bepalen.
Helaas gaat het niet helemaal goed, want als ik een testje probeer dat ik een JLabel met tekst gevolgd door een textfield zonder inhoud, dan laat hij de tekstfield als 1 pixel groot zien. Geef ik hem inhoud dan vergoot hij wel...
AARGH....
Ik gebruik de volgende methode:
// voegt een component toe aan de GridBagLayout
protected void addGridBagComponent(JPanel paneel, Component c, GridBagConstraints constraints, int xpos, int ypos, int breedte, int hoogte)
{
// positie op de x-as
constraints.gridx = xpos;
// positie op de y-as
constraints.gridy = ypos;
// breedte van de cel
constraints.gridwidth = breedte;
// hoogte van de cel
constraints.gridheight = hoogte;
// toevoegen
paneel.add(c, constraints);
}
Deze methode roep ik aan in onderstaande code:
GridBagConstraints constraints = new GridBagConstraints();
jlKlantnummer.setText("Dit is een hele erge lange test-tekst ten behoeve van de gridbaglayout.");
// tfOrder.setText("fdjskdfjkdfjkfdjkfdjkdfkj");
constraints.weightx = 100;
constraints.weighty = 100;
layout.addGridBagComponent(this.klantenPaneel, jlKlantnummer, constraints, 0, 0, 1, 1);
constraints.weightx = 100;
constraints.weighty = 100;
constraints.anchor = GridBagConstraints.EAST;
layout.addGridBagComponent(this.klantenPaneel, tfOrder, constraints, 1, 0, 1, 20);
Wie kan mij vertellen hoe ik een minimale breedte instel op een cel?
Na enkele uren allerlei documentatie doorgelezen te hebben over de verschillende soorten LayoutManagers die er bestaan in JAVA is de GridBagLayout denk ik de beste keuze als je je layout zo flexibel mogelijk wilt hebben. Aangezien het ontzettend veel overeenkomsten vertoond met een HTML-tabel is het relatief eenvoudig te doorgronden.
Voor zover ik het kan zien stel je eerst al je eigenschappen in op je constraints om hem vervolgens toe te voegen aan je panel.
gridx bepaalt de positie op de x-as
gridy bepaalt de positie op de y-as
weight stelt de minimumgrootte vast???
en met fill en anchor schijn je de manier van schaling (boven, beneden e.d.) te kunnen bepalen.
Helaas gaat het niet helemaal goed, want als ik een testje probeer dat ik een JLabel met tekst gevolgd door een textfield zonder inhoud, dan laat hij de tekstfield als 1 pixel groot zien. Geef ik hem inhoud dan vergoot hij wel...
AARGH....
Ik gebruik de volgende methode:
// voegt een component toe aan de GridBagLayout
protected void addGridBagComponent(JPanel paneel, Component c, GridBagConstraints constraints, int xpos, int ypos, int breedte, int hoogte)
{
// positie op de x-as
constraints.gridx = xpos;
// positie op de y-as
constraints.gridy = ypos;
// breedte van de cel
constraints.gridwidth = breedte;
// hoogte van de cel
constraints.gridheight = hoogte;
// toevoegen
paneel.add(c, constraints);
}
Deze methode roep ik aan in onderstaande code:
GridBagConstraints constraints = new GridBagConstraints();
jlKlantnummer.setText("Dit is een hele erge lange test-tekst ten behoeve van de gridbaglayout.");
// tfOrder.setText("fdjskdfjkdfjkfdjkfdjkdfkj");
constraints.weightx = 100;
constraints.weighty = 100;
layout.addGridBagComponent(this.klantenPaneel, jlKlantnummer, constraints, 0, 0, 1, 1);
constraints.weightx = 100;
constraints.weighty = 100;
constraints.anchor = GridBagConstraints.EAST;
layout.addGridBagComponent(this.klantenPaneel, tfOrder, constraints, 1, 0, 1, 20);
Wie kan mij vertellen hoe ik een minimale breedte instel op een cel?