13.3.2 图标的使用
1.创建图标
1 package lll; 2 import java.awt.*; 3 import javax.swing.*; 4 public class DrawIcon implements Icon{ 5 private int width; 6 private int height; 7 public DrawIcon (int height,int width) { 8 this.height=height; 9 this.width=width; 10 } 11 public void paintIcon(Component arg0,Graphics arg1,int x,int y) { 12 arg1.fillOval(x, y, width,height); //绘制圆形 13 } 14 public int getIconHeight() { 15 return this.height; 16 } 17 public int getIconWidth() { 18 return this.width; 19 } 20 public static void main(String[] args) { 21 DrawIcon icon=new DrawIcon(150,150); 22 JLabel jl=new JLabel("测试",icon,SwingConstants.CENTER); 23 JFrame jf=new JFrame(); 24 Container container= jf.getContentPane(); 25 container.add(jl); 26 jf.setBackground(Color.BLUE); 27 jf.setVisible(true); 28 jf.setSize(340, 400); 29 jf.setTitle("李智博"); 30 jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 31 } 32 33 }
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包里方便检索。