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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM