Swing程序设计(4)JLabel标签和导入图片

文章目录

  • 前言
  • 一、JLabel标签
    • 1.介绍
    • 2.实例展示
  • 二、JLabel中绘图和导入图片
    • 1.自定义绘图
    • 2.导入图片
  • 总结

前言

        本文介绍了Swing程序中JLabel标签的使用,以及在标签中导入图片和自定义图标的方法。


一、JLabel标签的使用

1.介绍

        JLabel标签:在Swing程序中显示文本或提示信息的组件,支持文本字符和图标,可以用于显示图片。

        语法:

JLabel jl = new JLabel();
//创建一个标签对象jl

        常用的构造方法:

    new JLabel();  
//创建一个不带图标和文本的JLabel对象new JLabel(Icon icon);  
//创建一个带图标的JLabel对象 new JLabel(Icon icon , int aligment); 
//创建一个带图标,并且设置了图标水平对齐方式的JLabel对象new JLabel(String text , int aligment);
//创建一个带文本,并且设置了文本水平对齐方式的JLabel对象 new JLabel(String text , Icon icon , int aligment);
//创建一个带文本、带图标,并且设置标签内容水平对齐方式的JLabel对象            

2.实例展示

import java.awt.*;
import javax.swing.*;
//导入Swing程序的包public class LabelDemo extends JFrame{
//继承导入包中的JFrame窗体类,创建窗体public LabelDemo(){//创建构造方法,对象为 LabelDemo() ,可在此方法中对此对象进行代码操作setBounds(100,100,100,100);//设置窗体的大小,生成位置setDefaultCloseOperation(EXIT_ON_CLOSE);//设置窗体的关闭方式Container c = getContentPane();//获取该窗体的容器JLabel a = new JLabel("这是一个标签", null, SwingConstants.CENTER);//创建一个Jlabel对象,设置好文本,图标未设置,对齐方式为居中c.add(a);//容器中添加JLabel组件setVisible(true);//设置为窗体可视化}public static void main(String[] args) {new LabelDemo();}
}

         运行结果:

二、JLabel中绘图和导入图片

        Swing中的图标可以放置于JButtonJLabel组件上,通过图标更加直观地描述按钮、标签的用途。Swing程序还允许图片替代图标,展示于JButtton、JLabel组件上。

1.自定义绘图

        介绍:自定义图标,通过实现Swing程序中的Icon接口,可以给定图标的形状、大小、颜色等特性

        Icon接口中需要实现的抽象方法

    public int getIconWidth();
//用于获取图标的宽public int getIconHeight();
//用于获取图标的高public void paintIcon(Component arg0, Graphics arg1, int arg2, int arg3);
//用于实现在指定坐标下位置进行绘制图标

        实例展示:

import javax.swing.*;
import java.awt.*;
//导入swing包,awt包public class Demo extends JFrame implements Icon{  /*Swing包中的Icon接口:可以自定义图标,用于绘图,创建时确定图标的大小、颜色等特性Icon接口中的要实现的三个抽象方法:1. public int getIconHeigth() 方法: 用于获取图标的宽2. public int getIconWidth() 方法:用于获取图标的高3. public void paintIcon(Component arg0, Graphics arg1, int arg2, int arg3) 方法: 用于实现在指定坐标位置画图*/private static int width;   //设置了图标的宽(全局变量)private static int height;  //设置了图标的高(全局变量)public int getIconWidth(){  //实现Icon接口中的抽象方法 getIconWidth()return this.width;}public int getIconHeight(){//实现Icon接口中的抽象方法 getIconHeight()return this.height;}public void paintIcon(Component arg0, Graphics arg1, int x, int y){//实现Icon接口中的抽象方法 paintIcon()arg1.fillOval(x, y, width, height);  //在指定的矩形区域内绘制一个填充的椭圆形,宽和高分别为width和heigth// arg1.fill3DRect(arg3, arg3, arg2, arg3, false);  绘制一个3D矩形// arg1.fillArc(arg3, arg3, arg3, arg3, arg2, arg3);  绘制一个弧形// arg1.fillPolygon(null, null, arg3);  绘制一个多边形// arg1.fillRect(arg3, arg3, arg2, arg3);  绘制一个矩形// arg1.fillRoundRect(arg3, arg3, arg3, arg3, arg2, arg3);  绘制一个圆角矩形}public Demo(int width,int height){  //定义构造方法this.height = height;this.width = width;//通过构造方法,实例化对象赋值,设置图标的宽和高}public static void main(String[] args) {Demo icon = new Demo(15,15);    //创建Demo对象icon图标,宽为15像素,高为15像素JLabel jl = new JLabel("测试",icon, SwingConstants.CENTER);//设置了标签的文本,图标,及其水平对齐方式JFrame jf = new JFrame("绘图");//创建了一个窗体对象Container c = jf.getContentPane();//获取窗体容器c.add(jl);//添加标签组件jf.setBounds(100, 100, 200, 200);//设置窗体生成位置和大小jf.setVisible(true);//窗体可视化}
}

        输出结果:

2.导入图片

        介绍:Swing的图标可以导入图片。Swing利用 javax.swing.ImageIcon类,根据现有图片资源创建图标对象,ImageIcon类实现了Icon接口,不需要自定义图标那样一一实现。

问:如何获取到我们电脑上现有的图片资源呢?

答:导入java.net.URL;

        java.net.URL是Java标准库中的一个类,用于表示URL(统一资源定位符),即Web上的地址。它所在的包是java.net,该包包含了Java中与网络通信相关的类和接口。java.net.URL类提供了许多方法来访问URL的各个组成部分,比如协议、主机名、端口号、路径等等。它还可以用于打开网络连接并读取数据。

         常用的构造方法:

    new ImageIcon();
/*创建一个通用的ImageIcon图像图标对象,需要显示该图片时,对标签对象使用 setImage(Image image) 方法来操作
*/new ImageIcon(Image image);
//直接从图片源中创建图标new ImageIcon(Image image,String description);
//直接从图片源中创建图标,并且未突变添加简短描述,不会显示可以使用getDescription()方法获取该描述new ImageIcon(URL url);
//通过路径,利用位于计算机网络上的图像文件创建图标

 想要在窗体中展示的图像如下:

         实例展示:

import javax.swing.*;
import java.awt.*;
//导入Swing程序的包import java.net.URL;
//导入获取资源定位URL的包public class Example extends JFrame{public Example() {setTitle("项目1");  //设置父窗体标题Container container = getContentPane();//获取容器JLabel jl = new JLabel("这是一个java图片",JLabel.CENTER);//创建一个标签,设置好标签内容,水平对齐方式URL url = Example.class.getResource("java.png");//getResource方法中输入图片的相对路径,获取"java.png"图片文件所在的URL路径,赋值给 url路径对象  Icon icon = new ImageIcon(url);     //url路径对象 实例化成一个Icon图标对象,ImageIcon类实现了Icon接口的所有抽象方法,跳过了自定义图标的步骤jl.setIcon(icon);   //为标签设置图片container.add(jl);  //将标签添加到容器中setBounds(100, 100, 600, 600);   //设置窗体大小setVisible(true);   //使窗体可见setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//设置关闭方式 }public static void main(String[] args) {new Example();}
}

        运行结果:

 


总结

        以上就是本文介绍的Swing程序中JLabel标签的使用,以及在标签中导入图片和自定义图标的方法。若有补充、指正、指点、疑问的地方,欢迎在评论区中留言,我将及时进行反馈。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/146828.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【生物信息学】计算图网络中节点的中心性指标:聚集系数、介数中心性、度中心性

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 3. IDE 三、实验内容 0. 导入必要的工具 1. 生成邻接矩阵simulate_G: 2. 计算节点的聚集系数 CC(G): 3.计算节点的介数中心性 BC(G) 4. 计算节点的度中心性 DC(G) 5. 综合centrality(G) 6. 代…

基于web的画作展示系统/作品展示平台

摘 要 网络的广泛应用给生活带来了十分的便利。所以把画作展示系统与现在网络相结合,利用JSP技术建设画作展示系统,实现画作展示系统的信息化。则对于进一步提高画作展示系统的发展,丰富画作展示系统经验能起到不少的促进作用。 画作展示系统…

NLP中token总结

Token 可以被理解为文本中的最小单位。在英文中,一个 token 可以是一个单词,也可以是一个标点符号。在中文中,通常以字或词作为 token。ChatGPT 将输入文本拆分成一个个 token,使模型能够对其进行处理和理解 在自然语言处理&#…

【QT】自定义组件ui类添加到主ui界面方法

1.添加自定义组件到项目中 add new选择如下 写好类方法,确定即可 2.将新创建的ui类加入到主ui界面 选中新创建ui类的父类空块,右键选择提升为 选择并添加新创建的类

asp.net core mvc 文件上传,下载,预览

//文件上传用到了IformFile接口 1.1文件上传视图 <form action"/stu/upload" method"post" enctype"multipart/form-data"><input type"file" name"img" /><input type"submit" value"上传&…

【通意千问】大模型GitHub开源工程学习笔记(2)--使用Qwen进行推理的示例代码解析,及transformers的库使用

使用Transformers来使用模型 如希望使用Qwen-chat进行推理,所需要写的只是如下所示的数行代码。请确保你使用的是最新代码,并指定正确的模型名称和路径,如Qwen/Qwen-7B-Chat和Qwen/Qwen-14B-Chat 这里给出了一段代码 from transformers import AutoModelForCausalLM, Aut…

多目标平衡优化器黏菌算法(MOEOSMA)求解CEC2020多模式多目标优化

多目标平衡优化器黏菌算法&#xff08;MOEOSMA&#xff09;比现有的多目标黏菌算法具有更好的优化性能。在MOEOSMA中&#xff0c;动态系数用于调整勘探和开采趋势。采用精英存档机制来促进算法的收敛性。使用拥挤距离法来保持Pareto前沿的分布。采用平衡池策略模拟黏菌的协同觅…

【深度学习实验】卷积神经网络(六):自定义卷积神经网络模型(VGG)实现图片多分类任务

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入必要的工具包 1. 构建数据集&#xff08;CIFAR10Dataset&#xff09; a. read_csv_labels&#xff08;&#xff09; b. CIFAR10Dataset 2. 构建模型&#xff08;FeedForward&…

前端页面初步开发

<template><div><el-card class"box-card" style"height: 620px"><el-input v-model"query.name" style"width:200px" placeholder"请输入用户姓名"></el-input>&nbsp&nbsp&nbsp…

贪心找性质+dp表示+矩阵表示+线段树维护:CF573D

比较套路的题目 首先肯定贪心一波&#xff0c;两个都排序后尽量相连。我一开始猜最多跨1&#xff0c;但其实最多跨2&#xff0c;考虑3个人的情况&#xff1a; 我们发现第3个人没了&#xff0c;所以可以出现跨2的情况 然后直接上dp&#xff0c;由 i − 1 , i − 2 , i − 3 i…

input输入表头保存excel文件

input输入表头 input输入表头 &#xff08;input内除了/&#xff0c;空格 回车 标点符号等 全部作为单元格分隔符&#xff09;保存/storage/emulated/0/代码文件/ 没有就创建文件名命名方法&#xff1a;编号. 库 时间戳嗨&#xff01;听说你有个需求&#xff0c;想根据用户输入…

数码产品数码配件无线键盘等出口欧盟CE-RED认证测试办理

数码产品数码配件无线键盘CE-RED认证测试办理 无线产品CE-RED认证进入东欧市场规定&#xff1a; 在通信终端设备和无线产品在这些/地区合法销售之前&#xff0c;必须按照 RED 指令进行测试&#xff0c;并且还必须提供 CE 标志。无线远程控制产品必须符合 RED 指令的 REDEU 要…

2021-06-18 51蛋骗鸡实现流水灯累积点亮全亮后闪烁从头开始循环

缘由怎么在单片机上实现这个功能呢_有问必答-CSDN问答 #include "REG52.h" sbit K1 P1^5; sbit K2 P1^6; sbit K3 P1^7; sbit K4 P1^4; //sbit LED1P1^0; //sbit LED2P1^1; //sbit LED3P1^2; //sbit LED4P1^3; bit k1; unsigned char code SmZiFu[]{63,6,91,79,…

数字乡村包括哪些方面?数字乡村应用介绍

数字乡村是指利用物联网、数字化和智能化技术&#xff0c;借助现代数字智能产品、高效信息服务和物联网基础设施&#xff0c;以提高农村居民生活质量&#xff0c;助力拓展经济发展前景。 创建数字村庄有助于缩小城乡社区之间的差距&#xff0c;保障每个人都能平等地享受科技发展…

Observer

Observer 动机 在软件构建过程中&#xff0c;我们需要为某些对象建立一种“通知依赖关系”——一个对象&#xff08;目标对象&#xff09;的状态发生改变&#xff0c;所有的依赖对象&#xff08;观察者对象&#xff09;都将得到通知。如果这样的依赖关系过于紧密&#xff0c;…

在移动固态硬盘上安装Ubuntu系统和ROS2

目录 原视频准备烧录 原视频 b站鱼香ros 准备 1.在某宝上买一个usb移动固态硬盘或固态U盘&#xff0c;至少64G 2.下载鱼香ros烧录工具 下载第二个就行了&#xff0c;不然某网盘的速度下载全部要一天 下载后&#xff0c;选择FishROS2OS制作工具压缩包&#xff0c;进行解压…

国庆节看这里,有你意想不到的收货!(建议收藏)

计算机视觉研究院专栏 作者&#xff1a;Edison_G “国庆长假&#xff0c;每个人都安耐不住了&#xff0c;但是&#xff0c;在你静心、游玩的时候&#xff0c;还是可以阅读今天的分享&#xff0c;干货满满&#xff01; 公众号ID&#xff5c;ComputerVisionGzq 学习群&#xff5c…

【STM32】IAP升级03关闭总中断,检测栈顶指针

IAP升级方法 IAP升级时需要关闭总中断 TM32在使用时有时需要禁用全局中断&#xff0c;比如MCU在升级过程中需禁用外部中断&#xff0c;防止升级过程中外部中断触发导致升级失败。 ARM MDK中提供了如下两个接口来禁用和开启总中断&#xff1a; __disable_irq(); // 关闭总中…

【Django】4 Django模型

每个模型是一个Python 类&#xff0c;集成django.db.models.Modle类 该模型的每个属性表示一个数据库表字段 通过API 自动生成数据库访问 .../sign/modles.py 文件&#xff0c;通过模型完成表创建。 TypeError: ForeignKey.__init__() missing 1 required positional argumen…

leetcode-239-滑动窗口最大值

题意描述&#xff1a; 给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例&#xff1a; 输入&#xff1a;nums [1,3,-1,…