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. 手把手构建LSTM的向前传播(Building a LSTM step by step)

      本篇是在之前两篇基础上接着写的: 吴恩达deepLearning.ai循环神经网络RNN学习笔记(理论篇) 从头构建循环神经网络RNN的向前传播(rnn in pure python) 也可以不看 ...

  2. DOTNET CORE源码分析之IServiceProvider、ServiceProvider、IServiceProviderEngine、ServiceProviderEngine和ServiceProviderEngineScope

    首先谈一下IServiceProvider IServiceProvider只提供给了一个根据类型获取对象的功能,试想一下IOC总得有一个找到对象,具体如下 public interface ISer ...

  3. Natas15 Writeup(sql盲注之布尔盲注)

    Natas15: 源码如下 /* CREATE TABLE `users` ( `username` varchar(64) DEFAULT NULL, `password` varchar(64) ...

  4. Redis启动服务和String常用命令

    Redis启动服务和String常用命令 1. 启动Redis服务 E:\redis>redis-server.exe redis.windows.conf _._ _.-``__ ''-._ ...

  5. 从零开始学习R语言(一)——数据结构之“向量”(Vector)

    本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/59688569 也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/125370 ...

  6. idea安装 阿里巴巴Java编码准则插件

    首先还是打开熟悉的idea 在marketplace 输入 alibaba 我这是已经安装过了 下载完成之后重启idea生效 如果需要那就手动的扫描 当然已经自动的扫描了 如果你的代码不符合阿里的标准 ...

  7. .NET的资源并不限于.resx文件(二)

    ResourceManager在默认的情况下只能提供对内嵌于程序集的.resources资源文件的存取. 为了实现对独立二进制.resources资源文件的支持,我们自定义了BinaryResoruc ...

  8. Oracle job启动与关闭

    --查看job下次执行时间以及间隔时间 select * from dba_jobs where job = '774'; --启动job exec dbms_job.run(774); --停用jo ...

  9. [单调栈] 2018-2019 ACM-ICPC, China Multi-Provincial Collegiate Programming Contest-Maximum Element In A Stack

    题目:https://codeforces.com/gym/102222/problem/A Maximum Element In A Stack time limit per test 10.0 s ...

  10. [模拟]Codeforces Circle of Students

    Circle of Students time limit per test 2 seconds memory limit per test 256 megabytes input standard ...