java - Positioning GUI objects on a Frame -


i developing java application , in positioning labels , textfields.

here code:

import javax.swing.jframe; import javax.swing.jpanel; import javax.swing.jcombobox; import javax.swing.jbutton; import javax.swing.jlabel; import javax.swing.jlist; import javax.swing.jtextfield;  import java.awt.borderlayout; import java.awt.event.actionlistener; import java.awt.event.actionevent; import java.awt.flowlayout;  public class auctionclient { public auctionclient() {     jframe guiframe = new jframe();     jpanel guipanel = new jpanel();     jlabel labelusername = new jlabel("username:");     jtextfield textfieldusername = new jtextfield("                               ");      jlabel labelpassword = new jlabel("password:");     jtextfield textfieldpassword = new jtextfield("                               ");              guiframe.setdefaultcloseoperation(jframe.exit_on_close);     guiframe.settitle("auction client");     guiframe.setsize(500,250);      guiframe.setlocationrelativeto(null);      guipanel.add(labelusername);     guipanel.add(textfieldusername);              guipanel.add(labelpassword);     guipanel.add(textfieldpassword);               guiframe.add(guipanel, borderlayout.north);     guiframe.setvisible(true); }   } 

with above code, labelpassword , textfieldpassword on same line labelusername , textfieldusername. can please have position labelpassword , textfieldpassword on new line. possible specify x,y coordinates position objects on jframe?

here image show how objects being shown:

enter image description here

http://canning.co.nz/java/positioning_image.png

you should never try position components coordinates. rather use appropriate layoutmanager's , use logical conditions , constraints position components.

here 1 example using gridbaglayout:

import java.awt.borderlayout; import java.awt.gridbagconstraints; import java.awt.gridbaglayout; import java.awt.insets;  import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.jpanel; import javax.swing.jpasswordfield; import javax.swing.jtextfield; import javax.swing.swingutilities;  public class auctionclient {     public auctionclient() {         jframe guiframe = new jframe();         jpanel guipanel = new jpanel(new gridbaglayout());         jlabel usernamelabel = new jlabel("username:");         jtextfield usernametextfield = new jtextfield(30);          jlabel passwordlabel = new jlabel("password:");         jtextfield passwordtextfield = new jpasswordfield(30);          guiframe.setdefaultcloseoperation(jframe.exit_on_close);         guiframe.settitle("auction client");         guiframe.setsize(500, 250);          guiframe.setlocationrelativeto(null);         gridbagconstraints labelgbc = new gridbagconstraints();         labelgbc.insets = new insets(3, 3, 3, 3);         gridbagconstraints fieldgbc = new gridbagconstraints();         fieldgbc.insets = new insets(3, 3, 3, 3);         fieldgbc.gridwidth = gridbagconstraints.remainder;         guipanel.add(usernamelabel, labelgbc);         guipanel.add(usernametextfield, fieldgbc);          guipanel.add(passwordlabel, labelgbc);         guipanel.add(passwordtextfield, fieldgbc);          guiframe.add(guipanel, borderlayout.north);         guiframe.setvisible(true);     }      public static void main(string[] args) {         swingutilities.invokelater(new runnable() {             @override             public void run() {                 new auctionclient();             }         });     } } 

Comments