Why doesn't setLocation() move my label?

后端 未结 2 1186
有刺的猬
有刺的猬 2020-12-16 00:02

I have the following code where I try to place a JLabel in a custom location on a JFrame.

public class GUI extends JFrame 
{

    /         


        
相关标签:
2条回答
  • 2020-12-16 00:40

    You put the location code under the frame and it will work but if you want it to work for sure put the location code in a run while loop. That's what I did to figure it out and it works.

    0 讨论(0)
  • 2020-12-16 00:41

    The problem is that the LayoutManager of the panel is setting the location of the label for you.

    What you need to do is set the layout to null:

    public GUI() {
        setLayout(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:

    addLbl.setBounds(new Rectangle(new Point(200, 300), addLbl.getPreferredSize()));
    

    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 LayoutManagers to work in your favor.

    Here is a great tutorial on getting started with using LayoutManagers.

    If you must go without a LayoutManager here is a good tutorial for going without one.

    0 讨论(0)
提交回复
热议问题