如何使用 java 更改框架中标签的位置

How to change the position of label in frame using java

我刚开始在 java 中制作框架并编写了以下代码:

 import javax.swing.*;

public class HelloWorldFrame extends JFrame

{       
  public static void main(String[] args)
{   
  new HelloWorldFrame(); 
}
HelloWorldFrame()
 {
    JLabel jlb=new JLabel("HelloWorld");  
    add(jlb);
    this.setSize(100,100);
    setVisible(true);
 }
}   

任何人都可以帮助解释如何更改上面代码中标签的位置

使用两种真正处理的方法可以很容易地更改 JLabel 实例的位置。在下面查找要使用的代码:

HelloWorldFrame()
 {
    JLabel jlb=new JLabel("HelloWorld");  
    jlb.setHorizontalAlignment(50); // set the horizontal alignement on the x axis !
    jlb.setVerticalAlignment(50); // set the verticalalignement on the y axis !
    add(jlb);
    this.setSize(100,100);
    setVisible(true);
 }

您可以在此处了解有关 JLabel 以及如何操作它们的更多信息:http://docs.oracle.com/javase/7/docs/api/javax/swing/JLabel.html

//编辑

根据我之前给出的评论,给出的对齐方式无效。所以我进行了必要的更改以使它们起作用!

 HelloWorldFrame()
     {
        JLabel jlb=new JLabel("HelloWorld");  
        jlb.setHorizontalAlignment(SwingConstants.CENTER); // set the horizontal alignement on the x axis !
        jlb.setVerticalAlignment(SwingConstants.CENTER); // set the verticalalignement on the y axis !
        add(jlb);
        this.setSize(100,100);
        setVisible(true);
     }

通常(阅读推荐)你所追求的是通过使用 Layout Managers. If that does not work for you, you would need to use setLocation(int x, int y) 并将其与 this.setLayoutManager(null)(或类似的东西)结合起来实现的。这将删除默认布局管理器并让您完全控制 where/how 是否放置了您的对象。

编辑:如@AndrewThompson 所述,除非您真的、真的必须这样做,否则请选择第一种方法而不是第二种方法。