opmaken invulformulier

Status
Niet open voor verdere reacties.

Clemens Schalkw

Gebruiker
Lid geworden
5 dec 2007
Berichten
166
Ik ben een formulier aan het maken om je persoonsgegevens in te kunnen vullen.
Ik heb een JFrame met een BorderLayout. Hierin zet ik (in CENTER) een JPanel met een GridLayout.
Aan dit JPanel voeg ik een aantal JLabels en JTextFields toe.
Nu moet je aan je GridLayout het aantal kolommen en rijen opgeven, maar niet iedere rij heeft een gelijk aantal kolommen. Ook wil ik bij een aantal rijen een commentaar label met bijbehorend JTextField zetten. Dit is telkens hetzelfde dus ik dacht een aantal keer hetzelfde JLabel en JTextField te zetten, maar dit kan / mag schijnbaar niet, want het wordt niet getoond.

- Mijn eerste vraag is dus of dit simpel is op te lossen of moet ik echt iedere keer een ander JLabel en JTextField gebruiken.

Nu dacht ik dat het misschien handiger is om een JPanel te maken met een FlowLayout per regel, maar dat betekend nog meer code.

- Mijn tweede vraag is dus of dit te vereenvoudigen is.

- Mijn derde vraag is hoe ik de maat van het JTextField kan opgeven, want hoe groter mijn JFrame wordt hoe groter ook de JTextFields.

De code die ik tot nu toe heb is:

Code:
import java.awt.GridLayout;
import javax.swing.*;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Condor
 */
public class NewPerson extends TestForm {

    private JLabel lblFirstName;
    private JTextField txtFirstName;
    private JLabel lblFirstNameEmpty;
    private JLabel lblFirstNameEmpty2;

    private JLabel lblNameAdd;
    private JTextField txtNameAdd;
    private JLabel lblNameAddEmpty;
    private JLabel lblNameAddEmpty2;

    private JLabel lblSurName;
    private JTextField txtSurName;
    private JLabel lblSurNameEmpty;
    private JLabel lblSurNameEmpty2;

    private JLabel lblAddress;
    private JTextField txtAddress;
    private JLabel lblAddressEmpty;
    private JLabel lblAddressEmpty2;

    private JLabel lblBuildingNr;
    private JTextField txtBuildingNr;
    private JLabel lblBuildingNrEmpty;
    private JLabel lblBuildingNrEmpty2;

    private JLabel lblPostalcode;
    private JTextField txtPostalcode;
    private JLabel lblPostalcodeEmpty;
    private JLabel lblPostalcodeEmpty2;
    
    private JLabel lblCity;
    private JTextField txtCity;
    private JLabel lblCityEmpty;
    private JLabel lblCityEmpty2;

    private JLabel lblCountry;
    private JTextField txtCountry;
    private JLabel lblCountryEmpty;
    private JLabel lblCountryEmpty2;

    private JLabel lblPhonenumber;
    private JTextField txtPhonenumber;
    private JLabel lblPhonenumberComment;
    private JTextField txtPhonenumberComment;

    private JLabel lblMobile;
    private JTextField txtMobile;
    private JLabel lblMobileComment;
    private JTextField txtMobileComment;


    public static void main(String[] args) {
        NewPerson n = new NewPerson();
    }

    public NewPerson() {

    }

    @Override
    public void makeCenterPanel() {
      super.makeCenterPanel();
      pnlCenter = new JPanel(new GridLayout(11, 4));

      lblFirstName = new JLabel("Firstname :");
      txtFirstName = new JTextField(30);
      lblFirstNameEmpty = new JLabel("");
      lblFirstNameEmpty2 = new JLabel(" ");
      
      lblNameAdd = new JLabel("Name addition :");
      txtNameAdd = new JTextField(10);
      lblNameAddEmpty = new JLabel("");
      lblNameAddEmpty2 = new JLabel("");

      lblSurName = new JLabel("Surname :");
      txtSurName = new JTextField(30);
      lblSurNameEmpty = new JLabel("");
      lblSurNameEmpty2 = new JLabel("");

      lblAddress = new JLabel("Address :");
      txtAddress = new JTextField(30);
      lblAddressEmpty = new JLabel("");
      lblAddressEmpty2 = new JLabel("");

      lblBuildingNr = new JLabel("BuildingNr. :");
      txtBuildingNr = new JTextField(5);
      lblBuildingNrEmpty = new JLabel("");
      lblBuildingNrEmpty2 = new JLabel("");

      lblPostalcode = new JLabel("Postalcode :");
      txtPostalcode = new JTextField(10);
      lblPostalcodeEmpty = new JLabel("");
      lblPostalcodeEmpty2 = new JLabel("");

      lblCity = new JLabel("City :");
      txtCity = new JTextField(30);
      lblCityEmpty = new JLabel("");
      lblCityEmpty2 = new JLabel("");

      lblCountry = new JLabel("Country :");
      txtCountry = new JTextField(30);
      lblCountryEmpty = new JLabel("");
      lblCountryEmpty2 = new JLabel("");

      lblPhonenumber = new JLabel("Phonenumber :");
      txtPhonenumber = new JTextField(10);
      lblPhonenumberComment = new JLabel("Comment :");
      txtPhonenumberComment = new JTextField(30);

      lblMobile = new JLabel("Mobile :");
      txtMobile = new JTextField(10);
      lblMobileComment = new JLabel("Comment :");
      txtMobileComment = new JTextField(30);

      pnlCenter.add(lblFirstName);
      pnlCenter.add(txtFirstName);
      pnlCenter.add(lblFirstNameEmpty);
      pnlCenter.add(lblFirstNameEmpty2);

      pnlCenter.add(lblNameAdd);
      pnlCenter.add(txtNameAdd);
      pnlCenter.add(lblNameAddEmpty);
      pnlCenter.add(lblNameAddEmpty2);

      pnlCenter.add(lblSurName);
      pnlCenter.add(txtSurName);
      pnlCenter.add(lblSurNameEmpty);
      pnlCenter.add(lblSurNameEmpty2);

      pnlCenter.add(lblAddress);
      pnlCenter.add(txtAddress);
      pnlCenter.add(lblAddressEmpty);
      pnlCenter.add(lblAddressEmpty2);

      pnlCenter.add(lblBuildingNr);
      pnlCenter.add(txtBuildingNr);
      pnlCenter.add(lblBuildingNrEmpty);
      pnlCenter.add(lblBuildingNrEmpty2);

      pnlCenter.add(lblPostalcode);
      pnlCenter.add(txtPostalcode);
      pnlCenter.add(lblPostalcodeEmpty);
      pnlCenter.add(lblPostalcodeEmpty2);

      pnlCenter.add(lblCity);
      pnlCenter.add(txtCity);
      pnlCenter.add(lblCityEmpty);
      pnlCenter.add(lblCityEmpty2);

      pnlCenter.add(lblCountry);
      pnlCenter.add(txtCountry);
      pnlCenter.add(lblCountryEmpty);
      pnlCenter.add(lblCountryEmpty2);

      pnlCenter.add(lblPhonenumber);
      pnlCenter.add(txtPhonenumber);
      pnlCenter.add(lblPhonenumberComment);
      pnlCenter.add(txtPhonenumberComment);

      pnlCenter.add(lblMobile);
      pnlCenter.add(txtMobile);
      pnlCenter.add(lblMobileComment);
      pnlCenter.add(txtMobileComment);

      pnlCenter.add(new JLabel(""));
      pnlCenter.add(new JLabel(""));
      pnlCenter.add(new JButton("SAVE"));
      pnlCenter.add(new JLabel(""));
    }
}
 
Bedankt voor je antwoord.
Ik had inderdaad al naar de GridBagLayout gekeken, maar ik hoopte dat er een simpelere manier zou zijn.
Ik ga (morgen) weer verder "oefenen" en ach, hier leer je ook weer van.
 
Je kan ook Matisse GUI builder gebruiken uit Netbeans...

Dan hoef je zelf niets te typen.. maar je moet dan wel precies weten wat je doet.
Als eenmaal een zooitje is geworden krijg je het vaak niet meer goed. (en ja ik spreek uit eigen ervaring.:( )
 
hahahaha.
Dank, maar nee dank je.
Ik heb al een keer lopen klooien met de Netbeans GUI builder.
Allemaal leuk en aardig, maar als je iets moet weizigen moet je dat altijd doen in de Hui builder, want je code is locked.
Natuurlijk kun je je code kopieren en plakken in een nieuwe file, maar dan kan je daarna de gui builder natuurlijk niet meer gebruiken.

Verder vind ik het prettiger om het zelf te schrijven, want dan weet je zelf wat je doet en kan je alles makkelijker terugvinden.

De GUI builder vind ik erg handig om eventuele (toekomstige) klanten even snel iets te laten zien, verder zal ik het niet veel gebruiken denk ik.

Wel erg bedankt voor het meedenken. ;-)
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan