13.3.2 图标的使用
1.创建图标
 package lll;
import java.awt.*;
import javax.swing.*;
public class DrawIcon implements Icon{
private int width;
private int height;
public DrawIcon (int height,int width) {
this.height=height;
this.width=width;
}
public void paintIcon(Component arg0,Graphics arg1,int x,int y) {
arg1.fillOval(x, y, width,height); //绘制圆形
}
public int getIconHeight() {
return this.height;
}
public int getIconWidth() {
return this.width;
}
public static void main(String[] args) {
DrawIcon icon=new DrawIcon(150,150);
JLabel jl=new JLabel("测试",icon,SwingConstants.CENTER);
JFrame jf=new JFrame();
Container container= jf.getContentPane();
container.add(jl);
jf.setBackground(Color.BLUE);
jf.setVisible(true);
jf.setSize(340, 400);
jf.setTitle("李智博");
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
} }
DrawIcon icon=new DrawIcon(15,15);
思想是将图标放置在按钮或者标签上,这里将图标放在了标签上,然后将标签添加到了容器中。实现了在窗体使用图标的功能
2.使用图片图标
Swing中的图标除了可以自己绘制之外,还可以使用某个特定的图pain创建。Swing利用javax.Swing.ImageIcon类根据现有图片创建图标,ImageIcon类实现了Icon接口,同时Java支持多种图片格式。
ImageIcon类的构造方法:
  • public ImageIcon(): 该构造方法创建一个通用的Imageicon对象,当真正需要设置图片时,用ImageIcon对象调用setImage(Image )方法来操作
  • public ImageIcon(Image image):可以直接从图片源创建图标。
  • public ImageIcon(Image image,String description):额外为图标增加了一个简短描述,该描述不会在图标上显示,可以使用getDescription()方法获取这个描述。
  • public ImageIcon(URL url):该构造方法利用位于计算机网络上的图像文件创建图标。
package lll;

import java.awt.*;
import java.net.*;
import javax.swing.*; public class MyImageIcon extends JFrame{
public MyImageIcon() {
Container c=getContentPane();
JLabel jl=new JLabel("奥里给",JLabel.CENTER);
URL url =MyImageIcon.class.getResource("225784fefc72f6f.jpg");
Icon icon=new ImageIcon(url); //实例化icon对象
jl.setIcon(icon);
jl.setHorizontalAlignment(SwingConstants.CENTER);
//设置文字在标签中间
jl.setOpaque(true);//标签为不透明状态
c.add(jl);
setSize(1000,1000);
setVisible(true);
//设置窗体关闭模式
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String args[]) {
new MyImageIcon();
}
}

java.lang.Class类中的getResource()方法可以获取资源文件的URL路径。图片参数是225784fefc72f6f.jpg 这个路径是相对于MyImageIcon路径下的,可以将图片放在我的lll包里方便检索。
 
 

Swing组件中URL方法获取 图标的更多相关文章

  1. element-ui 的el-button组件中添加自定义颜色和图标的实现方法

    这篇文章主要介绍了element-ui 的el-button组件中添加自定义颜色和图标的实现方法,目前的解决方案是:添加一个自定义全局指令,同时在element-ui源码中,加入对应的组件.需要的朋友 ...

  2. 使用jquery中height()方法获取各种高度大全

    alert($(window).height()); //浏览器当前窗口可视区域高度 alert($(document).height()); //浏览器当前窗口文档的高度 alert($(docum ...

  3. 微信小程序自定义组件的使用以及调用自定义组件中的方法

    在写小程序的时候,有时候页面的内容过多,逻辑比较复杂,如果全部都写在一个页面的话,会比较繁杂,代码可读性比较差,也不易于后期代码维护,这时候可以把里面某部分功能抽出来,单独封装为一个组件,也就是通常说 ...

  4. Angular 4 父组件调用子组件中的方法

    1. 创建工程 ng new demo3 2. 创建子组件 ng g component child 3. 在子组件中定义方法greeting 4. 父组件html(第三行是模板中调用子组件的方法) ...

  5. 父组件调用子组件中的方法- this.$refs.xxx.子组件方法();

    子组件中有一个说的方法 在父组件中去调用当你点击的时候 去调用子组件中的方法 fu.vue 在父组件的方法中调用子组件的方法,很重要 this.$refs.mychild.parentHandlecl ...

  6. vue.js中父组件触发子组件中的方法

    知识点:vue.js中,父组件的method中,触发子组件中的方法,获得子组件中的定义的属性 (1)子组件 : child_crud.js var html_child_crud= "< ...

  7. ListView组件中 onEndReached 方法在滚动到距离列表最底部一半时执行

    初次使用ListView,在写列表滚动到最底部自动加载使用到方法onEndReached, 发现: ListView组件中 onEndReached 方法在滚动到距离列表最底部一半时执行, 于是翻看文 ...

  8. 【Vue项目笔记】—— 父子组件之间传递参数和子组件执行父组件中的方法

    父组件(MyBlog.vue) <template> <!-- Delete Modal --> <!-- 注意:这里的@deleteBlog中的deleteBlog要和 ...

  9. 九、React中的组件、父子组件、React props父组件给子组件传值、子组件给父组件传值、父组件中通过refs获取子组件属性和方法

    一.概述 React中的组件: 解决html 标签构建应用的不足. 使用组件的好处:把公共的功能单独抽离成一个文件作为一个组件,哪里里使用哪里引入. [父子组件]:组件的相互调用中,我们把调用者称为父 ...

随机推荐

  1. 当AI遇上K8S:使用Rancher安装机器学习必备工具JupyterHub

    Jupyter Notebook是用于科学数据分析的利器,JupyterHub可以在服务器环境下为多个用户托管Jupyter运行环境.本文将详细介绍如何使用Rancher安装JupyterHub来为数 ...

  2. 微信小程序开发(四)学习基本组件

    现在我们已经学会使用工具了,再来了解,测试一下微信小程序的常用组件,所谓组件,就是微信团队已经开发好的一些常用标签,我们只需要掌握用法就可以了,当然,以后学得深入了,也可以开发自己的组件,让其他人使用 ...

  3. 混合开发 h5+ 沉浸式的适配

    1.需要在mainfest.json plus对象里添加 "statusbar": { "immersed": "true", " ...

  4. 【攻防世界】simple-unpack

    知识:upx脱壳 simple-unpack 难度系数: 3.0 题目来源: 暂无 题目描述:菜鸡拿到了一个被加壳的二进制文件 提示说有壳子:然后用PE分析发现是ELF upx的壳子

  5. shellcode

    msf > use windows/exec msf > set CMD calc.exe msf > set EXITFUNC thread msf > generate - ...

  6. 初步了解HTTP协议

    1.HTTP简介 全称:Hyper Text  Transfer Protocol,中文名:超文本传输协议. 功能:HTTP是客户端浏览器或其他程序与web服务器之间的应用层通信协议. 特点:a.支持 ...

  7. 第四周java实验

    实验四 类与对象的定义及使用 实验时间 2018-9-20 1.实验目的与要求 (1) 理解用户自定义类的定义: 类是具有相同属性和行为的一组对象的集合.java中,用构造器构造并初始化对象. 类是构 ...

  8. Hive的数据模型及各模块的应用场景

    Hive的数据模型   Hive数据模型.png 数据模型组成及应用场景 Hive的数据模型主要有:database.table.partition.bucket四部分: 数据模型之database ...

  9. 你所不知道的 C# 中的细节

    前言 有一个东西叫做鸭子类型,所谓鸭子类型就是,只要一个东西表现得像鸭子那么就能推出这玩意就是鸭子. C# 里面其实也暗藏了很多类似鸭子类型的东西,但是很多开发者并不知道,因此也就没法好好利用这些东西 ...

  10. 【笔记3-31】Python语言基础-列表list

    列表list my_list = [1, 2, 3, 4, 5] 索引index my_list[0] 获取列表长度 len(my_list) 切片 [起始:结束:步长] my_list[1:3:2] ...