zoukankan      html  css  js  c++  java
  • Swing学习2——图标添加Icon接口使用

    废话没有,看代码。

    主要就是通过实现Icon接口在标签添加一个圆形图标,并在框架中显示。

     1 package com.sword.swing_test;
     2 
     3 import javax.swing.*;
     4 import java.awt.*;
     5 import java.awt.event.WindowAdapter;
     6 import java.awt.event.WindowEvent;
     7 
     8 public class DrawIcon implements Icon {
     9     //在Swing中通过Icon接口创建图标,Icon中有三个方法必须实现
    10     //public int getIconWidth()、public int getIconHeight()、
    11     // public void paintIcon(Component arg0,Graphics arg1,int arg2,int arg4)
    12     private int width;
    13     private int height;
    14     public int getIconWidth(){
    15         return this.width;
    16     }
    17     public int getIconHeight(){
    18         return this.height;
    19     }
    20     public DrawIcon(int width,int height){
    21         this.width=width;
    22         this.height=height;
    23     }
    24     //实现paintIcon方法
    25     public void paintIcon(Component arg0,Graphics arg1,int x,int y){
    26         //绘制一个圆形
    27         arg1.fillOval(x,y,width,height);
    28     }
    29     public static void main(String[] arg){
    30         JFrame jf=new JFrame("IconTest");
    31         Container container=jf.getContentPane();
    32         DrawIcon icon=new DrawIcon(15,15);
    33         //JLabel(标签)中其中之一构造方法为public(String text,Icon icon,int aligment)
    34         //第三个参数为控制text即标签文本的对齐方式,用SwingConstants的静态常量
    35         JLabel jl=new JLabel("Sword",icon,SwingConstants.CENTER);
    36         container.add(jl);
    37         /*这里为什么使用Container的setBackground而不是JFrame的setBackground?
    38         我们先理论的说一下:在Swing编程体系中Swing容器分为三种,其中顶层容器又分为
    39         四层;自上而下分别为glass pane(玻璃面板)、
    40         content pane(内容面板)和menu bar(菜单条)、
    41         layered pane(分层面板)、root pane(根面板)
    42         frame的设置属性在这些面板之下表现,我们看到的也是从上往下的结果。
    43         通俗说就是Container默认背景颜色设置颜色为white,位于JFrame层的上面,JFrame设置的背景
    44         颜色会被Container的背景颜色遮蔽起来。
    45          */
    46         //jf.setBackground();
    47         container.setBackground(Color.GREEN);
    48         //设置窗口关闭触发事件的一种方式
    49         jf.addWindowListener(new WindowAdapter(){
    50             @Override
    51             public void windowClosing(WindowEvent e){
    52                 System.exit(0);
    53             }
    54         });
    55         //jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);j
    56         jf.setSize(500,500);
    57         jf.setVisible(true);
    58     }
    59 }
  • 相关阅读:
    解决 typedef void * POINTER_64 PVOID64; 问题
    短时间内快速获取随机数的方法
    怎样彻底重装IE
    在InstallShield中手动修改XML Files Changes
    Data, Privacy, & ECommerce ISDPE2010 Call for Papers
    DOS命令输出的重定向
    解决:Error spawning 'cmd.exe'
    wuapi 相关文件下载URL
    使用临界区 CRITICAL_SECTION 实现互斥
    修正 IPMSG 2.51 版本中的一点翻译错误
  • 原文地址:https://www.cnblogs.com/Sword007/p/9816188.html
Copyright © 2011-2022 走看看