[Java] SpringLayout textfields oprekken

Pagina: 1
Acties:

  • sig69
  • Registratie: Mei 2002
  • Laatst online: 11:28
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:
Afbeeldingslocatie: http://www.davidjuffermans.nl/FileUpload/files/springlayout.png
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?

Roomba E5 te koop


  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-03-2024

Confusion

Fallen from grace

Het ligt niet gewoon aan het feit dat je contraints op regel 17 en 19 verschillen van je contraints op 22/24 en 27/29?

Edit: reactie op volgende post: ik ook niet, maargoed, dat leek me iets dat je over het hoofd kon zien.

[ Voor 41% gewijzigd door Confusion op 14-12-2005 16:51 ]

Wie trösten wir uns, die Mörder aller Mörder?


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 11:28
Ik zie niet hoe een verticaal contraint invloed kan hebben op de breedte?
Overigens klopt dat wel, de description wordt aan het bovenliggende textfield verbonden met 5 pixels ertussen, etc. Of zijn dat niet de verschillen waar je op doelt?

[ Voor 54% gewijzigd door sig69 op 14-12-2005 16:48 ]

Roomba E5 te koop


  • Nick_S
  • Registratie: Juni 2003
  • Laatst online: 03:55

Nick_S

++?????++ Out of Cheese Error

Volgens mij moet je lijn 31 ook herhalen voor je andere twee textboxen.

'Nae King! Nae quin! Nae Laird! Nae master! We willna' be fooled agin!'


  • sig69
  • Registratie: Mei 2002
  • Laatst online: 11:28
Sorry, had ik moeten vermelden, dat is dus een van de dingen die ik geprobeerd heb en dan krijg ik dus dit:
Afbeeldingslocatie: http://www.davidjuffermans.nl/FileUpload/files/springlayout2.png
Oftewel hij pakt alleen de laatste:
Java:
1
2
3
layout.putConstraint(SpringLayout.EAST, this, 5, SpringLayout.EAST, txtAccountDescription);
layout.putConstraint(SpringLayout.EAST, this, 5, SpringLayout.EAST, txtAccountName);
layout.putConstraint(SpringLayout.EAST, this, 5, SpringLayout.EAST, txtStatus);

Ik heb ook al geprobeerd de overige twee textfields aan de"breedste" te verbinden, zodat die met de breedste mee zou rekken maar dat mocht ook niet baten. Het lijkt wel of je niet een EAST en en een WEST constraint tegelijk kan gebruiken ofzo...

[ Voor 4% gewijzigd door sig69 op 15-12-2005 09:05 ]

Roomba E5 te koop