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

时间:2015-01-22 14:47:05

标签: 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(jlb);
    this.setSize(100,100);
    setVisible(true);
 }
}   

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

2 个答案:

答案 0 :(得分:2)

通常(阅读推荐)通过使用Layout Managers实现您的目标。如果这对您不起作用,则需要使用setLocation(int x, int y)并将其与this.setLayoutManager(null)(或类似内容)结合使用。这将删除默认布局管理器,并让您完全控制放置对象的位置/方式。

编辑:正如@AndrewThompson所描述的那样,请采用第一种方法而不是第二种方法,除非你真的,真的必须这样做。

答案 1 :(得分:1)

通过使用两个真正处理的方法来更改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

// <强> EDITS

根据我之前给出的评论,所给出的结果无效。所以我做了必要的改变让它们起作用!

 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);
     }