Java Swing 标签 Label ,图标标签和图片标签。

一、初始化一个常规的JFrame

package GUI.Swing.IconAndImageLabel图片和图标标签;

import javax.swing.*;
import java.awt.*;

public class LabelDemo extends JFrame {
    public LabelDemo() {
        //use the constructor to unit a Frame
        this.setVisible(true);
        this.setBounds(100,100,400,200);
        Container contentPane = this.getContentPane();
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        
    }

    public static void main(String[] args) {
        new LabelDemo();
    }
}

二、图片标签.

1. 得到 图片的url ,(使用相对的路径 失败,这里使用绝对路径)
2.将 new ImageIcon(url),使用url 创建图片.
3.创建标签,并且导入图片,(此处有2种方法)

1.第一种是在创建的时候传入3个参数,“name”,Icon,CENTER(位置) 即可
2.第二种是在创建后
label.setIcon(imageIcon);
label.setHorizontalAlignment(SwingConstants.CENTER);

4.将标签放入容器中.
package GUI.Swing.IconAndImageLabel图片和图标标签;

import javax.swing.*;
import java.awt.*;

public class LabelDemo extends JFrame {
    public LabelDemo() {
        //use the constructor to unit a Frame
        this.setVisible(true);
        this.setBounds(100, 100, 400, 200);
        Container contentPane = this.getContentPane();
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        //get url 使用 当前类名.class.getResource("");传入相对地址得到绝对地址.//无法使用,此处使用绝对路径
        String url = "D:/Program Files/JetBrains/test1/Lab/src/GUI/Swing/IconAndImageLabel图片和图标标签/方糖黄.png";
        //使用url得到一个 Image 的对象
        ImageIcon imageIcon = new ImageIcon(url);
        //创建一个label 并将url参数传递给label,并居中显示,查看源码可以得出有3个参数,String Icon 和对齐方式
        JLabel label = new JLabel("方糖黄.png", imageIcon, SwingConstants.CENTER);
        //add label to contentPane
        contentPane.add(label);
    }

    public static void main(String[] args) {
        new LabelDemo();
    }
}
效果

在这里插入图片描述

三、图标标签(就是自己使用画一个图标,不常用)

1.实现Icon 的接口并重写Override方法,得到宽和高
2.paintIcon ()可以绘画处icon,这里出现未知错误.
3.将绘制的图像 new 此类就可以的得到Icon 的对象
4. 创建Label的时候添加icon 对象到label里

代码:

package GUI.Swing.IconAndImageLabel图片和图标标签;

import javax.swing.*;
import java.awt.*;

public class IconLabel extends JFrame implements Icon {
    @Override
    public void paintIcon(Component c, Graphics g, int x, int y) {
        g.fillRect(x,y,20,20);
    }

    @Override
    public int getIconWidth() {
        return 0;
    }

    @Override
    public int getIconHeight() {
        return 0;
    }
    //使用构造方法创建Frame

    public IconLabel() throws HeadlessException {
        this.setVisible(true);
        this.setBounds(100,100,400,400);
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        //add Icon to label,注意paintIcon()在new  的时候就会初始化
        IconLabel iconLabel = new IconLabel();
        JLabel label = new JLabel("图标label",iconLabel,SwingConstants.CENTER);
        //add label to contentPane
        Container contentPane = this.getContentPane();
        contentPane.add(label);
        label.setHorizontalAlignment(SwingConstants.CENTER);
    }

    public static void main(String[] args) {
        new IconLabel();
    }
}

窗口闪烁,添加失败,位置错误。

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JarvanStack

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值