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 }
  • 相关阅读:
    [LeetCode] 464. Can I Win 我能赢吗
    [LeetCode] 255. Verify Preorder Sequence in Binary Search Tree 验证二叉搜索树的先序序列
    [LeetCode] 244. Shortest Word Distance II 最短单词距离 II
    [LeetCode] 245. Shortest Word Distance III 最短单词距离 III
    [LeetCode] 243. Shortest Word Distance 最短单词距离
    [LeetCode] 229. Majority Element II 多数元素 II
    [LeetCode] 291. Word Pattern II 词语模式 II
    [LeetCode] 290. Word Pattern 单词模式
    C#中对 XML节点进行添加,删除,查找和删除操作
    VS2010在C#头文件中添加文件注释的方法(转)
  • 原文地址:https://www.cnblogs.com/Sword007/p/9816188.html
Copyright © 2011-2022 走看看