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. ffmpeg 使用

    ffmpeg 使用 一.介绍 FFmpeg 是视频处理最常用的开源软件,大量用于视频网站和商业软件(比如 Youtube 和 iTunes),视频本身是一个容器,里面包含了视频.音频和字幕等.FFmp ...

  2. emgucv 提示缺少emgucv.word

    遇到这种问题真的挺恶心的 ,因为条件不同触发这种错误条件也不一样,但是主要原因就是一个那就是你的程序找不到dll了(废话...) 1.首先检查Redistributable 与runtime(在开发环 ...

  3. 基于.NetCore3.1搭建项目系列 —— 使用Swagger做Api文档 (上篇)

    前言 为什么在开发中,接口文档越来越成为前后端开发人员沟通的枢纽呢? 随着业务的发张,项目越来越多,而对于支撑整个项目架构体系而言,我们对系统业务的水平拆分,垂直分层,让业务系统更加清晰,从而产生一系 ...

  4. 常用的 Git 命令与场景

    Git 分布式版本控制系统 它拥有完整的版本控制功能,能够解决多人协作的问题 将自己的代码同步到 Github 上能够提升开发效率 git 会记录你每一次的版本修改操作 常用的 Git 操作 # 指定 ...

  5. HTTP 错误 500.21 模块 IIS Web Core

    如果出现如下图错误 就是iis没有安装Web Core模块 下载并安装DotNetCore.1.0.4_1.1.1-WindowsHosting.exe 安装完成之后会出现如下 证明安装成功.网站也可 ...

  6. Contest 156

    2019-09-29 14:56:09 总体感受:30min解决了前三题,最后一题其实也很简单,但是题目没有看清.赛后5min解决了.总体来说,本次周赛是比较简单的一次. 注意点:首先是hard问题的 ...

  7. Inception V1-V4

    2019-05-29 20:56:02 一.Inception V1 当不知道在卷积神经网络中该使用1 * 1卷积还是3 * 3的卷积还是5 * 5的卷积或者是否需要进行pooling操作的时候,我们 ...

  8. layer弹层插件

      // 使用前需要引入jquery的支持,链接如下:   https://blog-static.cnblogs.com/files/liguanlong/jquery1.9.1.min.js    ...

  9. Codeforces #614 div.2 (A-E)

    A  ConneR and the A.R.C. Markland-N #include <bits/stdc++.h> using namespace std; #define ll l ...

  10. [vijos1782]借教室<线段树>

      题目链接:https://vijos.org/p/1782 题意:一个区间1,n.m次操作,每次操作让l,r区间值减去d,当有任何一个值小于0就输出当前是第几个操作 这道题其实是没有什么难度的,是 ...