I have the following code where I try to place a JLabel in a custom location on a JFrame.
public class GUI extends JFrame
{
/**
*
* @param args
*/
public static void main(String args[])
{
new GUI();
}
/**
*
*/
public GUI()
{
JLabel addLbl = new JLabel("Add: ");
add(addLbl);
addLbl.setLocation(200, 300);
this.setSize(400, 400);
// pack();
setVisible(true);
}
}
It doesn’t seem to be moving to where I want it.
The problem is that the
LayoutManagerof the panel is setting the location of the label for you.What you need to do is set the layout to null:
This will make it so the frame does not try to layout the components by itself.
Then call
setBounds(Rectangle)on the label. Like so:This should place the component where you want it.
However, if you don’t have a really great reason to lay out the components by yourself, it’s usually a better idea to use
LayoutManagersto work in your favor.Here is a great tutorial on getting started with using
LayoutManagers.If you must go without a
LayoutManagerhere is a good tutorial for going without one.