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();//執行個體化對象就是實現構造方法 }}
執行個體運行結果如下