Lớp ImageIcon trong Java Swing



Lớp ImageIcon, là một trình triển khai của Icon Iterface, để vẽ các Icon từ các Image. Dưới đây là cú pháp khai báo của lớp javax.swing.ImageIcon:

public class ImageIcon
   extends Object
      implements Icon, Serializable, Accessible

Lớp này kế thừa các phương thức từ các lớp sau:

  • java.lang.Object

Lớp ImageIcon có các trường sau:

  • protected static Component component

  • protected static MediaTracker tracker

Các constructor của lớp ImageIcon trong lớp Java Swing

ImageIcon(): Tạo một image icon chưa được khởi tạo.

ImageIcon(byte[] imageData): Tạo một ImageIcon từ một mảng byte mà đã được đọc từ một image file chứa một định dạng hình ảnh được hỗ trợ, như GIF, JPEG.

ImageIcon(Image image): Tạo một ImageIcon từ một đối tượng Image.

ImageIcon(String filename): Tạo ImageIcon từ file đã cho.

ImageIcon(URL location): Tạo ImageIcon từ URL đã cho.

Các phương thức của lớp ImageIcon trong Java Swing

STT Phương thức & Miêu tả
1 Image getImage()

Trả về hình ảnh của icon này

2 int getImageLoadStatus()

Trả về trạng thái của hoạt động tải hình ảnh này

3 ImageObserver getImageObserver()

Trả về trình quan sát observer cho hình ảnh này

4 protected void loadImage(Image image)

Tải hình ảnh, trả về chỉ khi hình ảnh được tải

5 void paintIcon(Component c, Graphics g, int x, int y)

Sơn màu icon

6 void setDescription(String description)

Thiết lập sự miêu tả của hình ảnh

7 void setImage(Image image)

Thiết lập hình ảnh được hiển thi bởi icon này

8 String toString()

Trả về một biểu diễn chuỗi của hình ảnh

Chương trình ví dụ lớp ImageIcon

package com.vietjack.gui;
 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
public class SwingControlDemo {
    
   private JFrame mainFrame;
   private JLabel headerLabel;
   private JLabel statusLabel;
   private JPanel controlPanel;   public SwingControlDemo(){
      prepareGUI();
   }   public static void main(String[] args){
      SwingControlDemo  swingControlDemo = new SwingControlDemo();      
      swingControlDemo.showImageIconDemo();
   }   private void prepareGUI(){
      mainFrame = new JFrame("Vi du Java Swing");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new JLabel("", JLabel.CENTER);        
      statusLabel = new JLabel("",JLabel.CENTER);          statusLabel.setSize(350,100);      controlPanel = new JPanel();
      controlPanel.setLayout(new FlowLayout());      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }   // Tra ve mot ImageIcon, hoac null neu path la khong hop le. 
   private static ImageIcon createImageIcon(String path,
      String description) {
      java.net.URL imgURL = SwingControlDemo.class.getResource(path);
      if (imgURL != null) {
         return new ImageIcon(imgURL, description);
      } else {            
         System.err.println("Couldn't find file: " + path);
         return null;
      }
   }
   private void showImageIconDemo(){
      headerLabel.setText("Control in action: ImageIcon"); 
	  
      ImageIcon icon = createImageIcon("/resources/java_icon.png","Java");      JLabel commentlabel = new JLabel("", icon,JLabel.CENTER);      controlPanel.add(commentlabel);      mainFrame.setVisible(true);  
   }
}

swing_control_trong_java_swing.jsp