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

如何使用java更改标签在框架中的位置,java,swing,layout-manager,Java,Swing,Layout Manager,我刚刚开始用java制作框架,并编写了以下代码: import javax.swing.*; public class HelloWorldFrame extends JFrame { public static void main(String[] args) { new HelloWorldFrame(); } HelloWorldFrame() { JLabel jlb=new JLabel("HelloWorld"); add(j

我刚刚开始用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的更多信息以及如何操作它们:

//编辑

根据我之前给出的评论,给出的对齐方式无法工作。所以我做了必要的改变,使他们的工作

 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);
     }
通常(阅读推荐)你所追求的是通过使用。如果这对您不起作用,您需要将它与
this.setLayoutManager(null)
(或类似的东西)结合使用。这将删除默认布局管理器,并让您完全控制对象的放置位置/方式


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

请参见。这里已经解释清楚了。提示:JFrame内容窗格的默认布局管理器是BorderLayout。Java GUI必须在不同的操作系统、屏幕大小、屏幕分辨率等上工作。因此,它们不利于像素完美布局。而是使用布局管理器,或者与布局填充和边框一起使用。我没有想到这一点。这比在轴上使用对齐更好,这意味着位置已经设置好了!很好的回答又是这个可怕的建议?在你的建议解决了比它引起的问题更多的问题之前,请停止提供关于制作GUI的建议。@AndrewThompson:我自己也不太喜欢第二种方法。我确实告诉了OP哪条路是推荐的。OP没有指定任何上下文,我认为它们都是有效的答案,但正如你所说的,第二种方法会带来比它解决的更多的麻烦。@WantTobeAbstract我很高兴它做到了!继续关注java代码!但为什么我现在在编译过程中会收到以下警告:HelloWorldFrame的javax.swing.JLabel.CheckHorizontalTalkey(JLabel.java:607)处javax.swing.JLabel.setHorizontalAlignment(JLabel.java:765)处的线程“main”java.lang.IllegalArgumentException中出现异常。(HelloWorldFrame.java:13)在HelloWorldFrame.main(HelloWorldFrame.java:7)中,我向您提供这样的示例代码是一个错误。那是我的错。只需查看Oracle上的代码,就可以看到“对齐-SwingConstants中定义的以下常量之一:TOP、CENTER(默认值)或BOTTOM”。这里有一个关于如何使用它的好例子:谢谢,终于显示了它,但是我不明白什么是swingconstant,您可以在这里了解更多关于swingconstant接口的信息:您可以在导入java swing实现时访问它