java 中JLabel中的内容垂直居中和水平居中问题

java 中JLabel中的内容垂直居中和水平居中问题

之前网上找了很多,有第三方插件的,但是没有解决问题,最终发现Java自带的布局就能实现其功能;主要如下:水平居中,垂直居中,即水平居中又垂直居中。

1.水平居中
这里写图片描述

代码如下:

public class Demo extends JFrame{

    /**
     * serialVersionUID
     */
    private static final long serialVersionUID = 1345343984399264602L;

    public Demo(){
        super("label中内容水平居中");
        setBounds(100, 100, 400, 300);

        JPanel p = new JPanel();  
        p.add(new JLabel("General",JLabel.CENTER));  
        p.setBackground(Color.green);

        getContentPane().add(p);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        Demo demo = new Demo();
    }
}

代码分析:new JLabel(“General”,JLabel.CENTER);这个JLabel有自带的居中,所有不需要其他的布局。

2.垂直居中:
这里写图片描述

代码如下:

public class Demo extends JFrame{

    /**
     * serialVersionUID
     */
    private static final long serialVersionUID = 1345343984399264602L;

    public Demo(){
        super("label中内容垂直居中");
        setBounds(100, 100, 400, 300);

        JPanel p = new JPanel(new BorderLayout());  
        p.add(new JLabel("General"),BorderLayout.CENTER);  
        p.setBackground(Color.green);

        getContentPane().add(p);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        Demo demo = new Demo();
    }
}

代码解析:new JLabel(“General”),BorderLayout.CENTER;BorderLayout布局主要是东西南北中五块,所以用它就可以实现垂直居中。具体代码可以去找API解决。

3.即垂直又水平居中,即将JLabel中的内容放到正中央。
这里写图片描述

public class Demo extends JFrame{

    /**
     * serialVersionUID
     */
    private static final long serialVersionUID = 1345343984399264602L;

    public Demo(){
        super("label中内容即垂直又水平居中");
        setBounds(100, 100, 400, 300);

        JPanel p = new JPanel(new BorderLayout());  
        p.add(new JLabel("General",JLabel.CENTER),BorderLayout.CENTER);  
        p.setBackground(Color.green);

        getContentPane().add(p);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    public static void main(String[] args) {
        Demo demo = new Demo();
    }
}

这个就更简单了,即水平又垂直,其实就是将1,2结合起来就行了。问题简单,仅供参考,不足之处,多多指教。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值