Ik ben een panel aan het redesignen, en na het een en ander gelzen te hebben over de Swing layou managers leek een SpringLayout me voor dit specifieke panel het meest geschikt. Het werkt op zich prima, op een ding na:

Zoals je ziet rekt slechts een van de textfields mee als ik het panel breder maak. Stukje code:
Ik vermoed dat het komt door regel 31, aangezien daar de panel east zijde aan de east zijde van het textfield verbonden wordt. Ik wil nu eigenlijk dat de andere 2 textfields ook meerekken, zoals in dit voorbeeld (Java webstart). Ik heb al heel wat combinaties van constraints geprobeerd, maar ik begin te betwijfelen of het wel kan zo, aangezien dat voorbeeld met SpringUtilities.makeCompactGrid werkt en dat werkt met breedtes etc ipv EAST, NORTH etc contraints. Kan iemand hier uitsluitsel over geven?

Zoals je ziet rekt slechts een van de textfields mee als ik het panel breder maak. Stukje code:
Java:
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
34
| private class TopPanel extends JPanel { public TopPanel() { super(); this.setBorder(BorderFactory.createTitledBorder("TOP")); SpringLayout layout = new SpringLayout(); this.setLayout(layout); this.add(lblAccountName); this.add(txtAccountName); this.add(lblAccountDescription); this.add(txtAccountDescription); this.add(lblStatus); this.add(txtStatus); layout.putConstraint(SpringLayout.WEST, lblAccountName, 5, SpringLayout.WEST, this); layout.putConstraint(SpringLayout.NORTH, lblAccountName, 5, SpringLayout.NORTH, this); layout.putConstraint(SpringLayout.WEST, txtAccountName, 5, SpringLayout.EAST, lblAccountDescription); layout.putConstraint(SpringLayout.NORTH, txtAccountName, 5, SpringLayout.NORTH, this); layout.putConstraint(SpringLayout.WEST, lblAccountDescription, 5, SpringLayout.WEST, this); layout.putConstraint(SpringLayout.NORTH, lblAccountDescription, 5, SpringLayout.SOUTH, txtAccountName); layout.putConstraint(SpringLayout.WEST, txtAccountDescription, 5, SpringLayout.EAST, lblAccountDescription); layout.putConstraint(SpringLayout.NORTH, txtAccountDescription, 5, SpringLayout.SOUTH, txtAccountName); layout.putConstraint(SpringLayout.WEST, lblStatus, 5, SpringLayout.WEST, this); layout.putConstraint(SpringLayout.NORTH, lblStatus, 5, SpringLayout.SOUTH, txtAccountDescription); layout.putConstraint(SpringLayout.WEST, txtStatus, 5, SpringLayout.EAST, lblAccountDescription); layout.putConstraint(SpringLayout.NORTH, txtStatus, 5, SpringLayout.SOUTH, txtAccountDescription); layout.putConstraint(SpringLayout.EAST, this, 5, SpringLayout.EAST, txtAccountDescription); layout.putConstraint(SpringLayout.SOUTH, this, 5, SpringLayout.SOUTH, txtStatus); } } |
Ik vermoed dat het komt door regel 31, aangezien daar de panel east zijde aan de east zijde van het textfield verbonden wordt. Ik wil nu eigenlijk dat de andere 2 textfields ook meerekken, zoals in dit voorbeeld (Java webstart). Ik heb al heel wat combinaties van constraints geprobeerd, maar ik begin te betwijfelen of het wel kan zo, aangezien dat voorbeeld met SpringUtilities.makeCompactGrid werkt en dat werkt met breedtes etc ipv EAST, NORTH etc contraints. Kan iemand hier uitsluitsel over geven?
