JTextField centreren in BorderLayout

Status
Niet open voor verdere reacties.

Virusbeatbox

Gebruiker
Lid geworden
18 dec 2007
Berichten
201
Beste,

ik heb een JTextField txtLogin in de center van een BorderLayout gestoken. Mijn programmatje bevat enkel een north, center en south panel van de BorderLayout (dus geen west en east). Mijn txtLogin zit op zijn beurt in een GridLayout.

Wanneer ik mijn programma laat runnen, zie ik dat het veld van mijn JTextField tegen de linkerrand van het scherm plakt en zo volledig doorloopt tot de rechterrand van het scherm...

Mijn vraag is nu, hoe kan ik die breedte van mijn JTextField verkleinen en deze centreren in mijn center panel?

greetzzz
 
Laatst bewerkt:
item.setBounds(position);
PHP:
1 public void guisetup(){
 2    	btnopendir = new Jbutton(resources.getlblFor("btnopendir"));
hier wordt de layout gereset belangerijk om absolute te werken
 3     setLayout(null);//important to use positions setbound 
grote van het JPanel
 4     setPreferredSize(new Dimension(400, 400));
een rand aan het JPanel
 5     setBorder(BorderFactory.createEtchedBorder());
 6     add(btnopendir);

		//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<ABSTRACT BUTTON with action>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
		public boolean additem(String tabname,String lbl,AbstractButton item,ActionListener AnAction,Rectangle position){
			if (item!=null){
				item.setBounds(position);
				return additem(tabname, lbl,item,AnAction);
			}else{
				return false;
			}
		}
 
Om het component te centreren kan je beter gebruik maken van een GridBagLayout.

Of je moet de bestaande BorderLayout vervangen door een GridBagLayout of je kan in de CENTER van de BorderLayout een JPanel toevoegen met een GridBagLayout.

Met de volgende code wordt de TextField gecenteerd:
Code:
panel.setLayout(new GridBagLayout());
panel. add(jTextField1, new GridBagConstraints());

Wellicht nog een tip, je bent snel veel (te veel) tijd kwijt met UI design vanuit code. Persoonlijk gebruik ik Eclipse als IDE maar ik gebruik NetBeans om schermen te ontwerpen omdat deze een goede gratis UI designer bevat.
 
Heb die GridBagLayout geprobeerd en het werkt! bedankt hier voor.

Maar heb nog een klein vraagje, wat in mn center staat is niet enkel een JTextField..
er staat nog een JTextField in en 2 JLabel's.. nu wil ik graag deze 4 elementen mooi onder elkaar in de center...

wat ik nu krijg met deze GridBagLayout is dat alles op 1 rij naast elkaar plakt, hoe krijg ik deze onder elkaar?
 
Dat zou op deze manier kunnen:

Code:
        GridBagConstraints gridBagConstraints;

        jLabel1 = new JLabel();
        jTextField1 = new JTextField();
        jLabel2 = new JLabel();
        jTextField2 = new JTextField();

        panel.setLayout(new GridBagLayout());

        jLabel1.setText("jLabel1");
        panel.add(jLabel1, new GridBagConstraints());

        jTextField1.setText("jTextField1");
        panel.add(jTextField1, new GridBagConstraints());

        jLabel2.setText("jLabel2");
        gridBagConstraints = new GridBagConstraints();
        gridBagConstraints.gridy = 1;
        panel.add(jLabel2, gridBagConstraints);

        jTextField2.setText("jTextField2");
        gridBagConstraints = new GridBagConstraints();
        gridBagConstraints.gridy = 1;
        panel.add(jTextField2, gridBagConstraints);
 
bekijk ook snel eens resource bundle om meerder taligheid te ondersteunen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan