程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> JAVA學習Swing章節標簽JLabel中圖標的使用,swingjlabel

JAVA學習Swing章節標簽JLabel中圖標的使用,swingjlabel

編輯:JAVA綜合教程

JAVA學習Swing章節標簽JLabel中圖標的使用,swingjlabel


package com.swing;

import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Graphics;

import javax.swing.Icon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;

/**
 * 1:在Swing中顯示文本或提示信息的方法是使用標簽,它支持文本字符串和圖標
 * 重點是標簽含有文本字符串和圖標
 * 
 * 2:標簽可以顯示一行只讀文本,一個圖像或帶圖像的文本,它並不能產生任何類型的事件
 * 只是簡單的顯示文本和圖片,但是可以使用標簽的特性指定標簽上文本的對齊方式
 * 重點是只是簡單的顯示文本和圖片
 * 
 * 3:JLabel標簽的構造方法,帶圖標,並且設置圖標水平對齊方式,帶文字,並設置文字的水平對齊方式
 * 帶圖標帶文字,並且設定標簽內容的水平對其方式
 * 
 * 4:Swing上面的圖標可以放置在按鈕,標簽,等組件上面,用於描述組件的用途
 * 
 * 5:Swing中通過Icon接口來實現創建圖表,可以在創建時給定圖標的大小,顏色等特性
 * 如果使用Icon接口,必須實現Icon的三個接口
 * @author biexiansheng
 *
 */
public class DrawIcon implements Icon{//實現Icon的接口,必須實現Icon的三個方法

    private int width;//聲明圖標的寬
    private int height;//聲明圖標的長
    //定義構造方法
    public DrawIcon(int width,int height){
        this.width=width;
        this.height=height;
    }
    @Override
    public void paintIcon(Component c, Graphics g, int x, int y) {
        // TODO Auto-generated method stub
        g.fillOval(x,y,width,height);
        //此處的學習難點在Graphics那一章節。
    }

    @Override
    public int getIconWidth() {//實現getIconWidth()方法
        // TODO Auto-generated method stub
        return this.width;
    }

    @Override
    public int getIconHeight() {//實現getIconHeight()方法
        // TODO Auto-generated method stub
        return this.height;
    }
    
    public static void main(String[] args) {
        DrawIcon icon=new DrawIcon(150,150);//初始化並且向構造方法傳值
        //創建一個標簽,並設置標簽上的文字在標簽正中間
        JLabel jl=new JLabel("測試",icon,SwingConstants.CENTER);
        
        
        JFrame jf=new JFrame();//創建一個JFrame窗口
        Container container=jf.getContentPane();//將窗口轉換為容器
        container.setBackground(Color.BLUE);
        
        container.add(jl);
        //設置容器的外部屬性
        jf.setTitle("標簽的使用,創建圖標");
        jf.setVisible(true);
        jf.setSize(340,400);
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
    
}

實例運行結果如下


 

 

package com.swing;
import java.awt.Container;
import java.net.URL;

import javax.swing.Icon;
import javax.swing.ImageIcon;
/**
 * 1:Swing中的圖標除了可以繪制以外,還可以使用某個特定的圖片創建。
 * Swing利用javax.swing.ImageIcon類根據現有的圖片創建圖標
 * ImageIcon類實現了Icon接口,同時Java支持多種圖片格式
 * 
 * 2:ImageIcon類有多個構造方法
 * 
 * 第一創建一個通用的ImageIcon對象,當真正需要設置圖片時再使用ImageIcon對象
 * 調用setImage(Image image)方法來操作
 * 第二直接從圖片源創建圖表
 * 第三除了可以直接從圖片源創建圖表之外,還可以為這個圖標添加簡短的描述
 * 第四利用位於計算機網絡上的圖像文件創建圖標
 */
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;

public class MyImageIcon extends JFrame {

    public MyImageIcon(){
        JFrame jf=new JFrame();//創建一個窗體
        Container container=jf.getContentPane();//將窗體轉化為容器
        
        //創建一個標簽//標簽的5種構造方法類型
        JLabel jl=new JLabel("這是一個JFrame窗體",JLabel.CENTER);
        
        //獲取圖片所在的URL
        URL url=MyImageIcon.class.getResource("imageButton.jpg");
        //java.lang.Class類中的getResource()方法可以獲取資源文件的URL路徑
        //該方法的參數是imageButton.jpg,這個路徑是相對於MyImageIcon類文件的
        //所以可將imageButton.jpg圖片放在和此類同一個文件夾下面
        Icon icon=new ImageIcon(url);//實例化Icon對象
        
        jl.setIcon(icon);//為標簽設置圖片
        //設置文字放置在標簽中間
        jl.setHorizontalAlignment(SwingConstants.CENTER);
        jl.setOpaque(true);//設置標簽為不透明狀態
        container.add(jl);//將標簽添加到容器中
        
        jf.setTitle("容器左上角");
        jf.setSize(250, 100);
        jf.setVisible(true);
        //設置窗體的關閉模式
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        MyImageIcon icon=new MyImageIcon();//實例化對象就是實現構造方法
    }

}

實例運行結果如下


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved