AWT Image类

1 什么是Java AWT Image

Image图像控件是表示图形图像的所有图像类的超类。

2 Java AWT Image的语法

public abstract class Image
   extends Object

3 Java AWT Image的构造方法

构造方法 描述
Image() 创建一个新的Image。

4 Java AWT Image的方法

方法 描述
void flush() 刷新此 Image 对象使用的所有可重构资源。
float getAccelerationPriority() 返回加速优先级提示的当前值。
ImageCapabilities getCapabilities(GraphicsConfiguration gc) 返回一个 ImageCapabilities 对象,该对象可以在指定的 GraphicsConfiguration 上查询此 Image 的功能。
abstract Graphics getGraphics() 创建用于绘制到离屏图像的图形上下文。
abstract int getHeight(ImageObserver observer) 确定图像的高度。
abstract Object getProperty(String name, ImageObserver observer) 按名称获取此图像的属性。
Image getScaledInstance(int width, int height, int hints) 创建此图像的缩放版本。
abstract ImageProducer getSource() 获取为图像生成像素的对象。
abstract int getWidth(ImageObserver observer) 确定图像的宽度。
void setAccelerationPriority(float priority) 为该图像设置有关加速度重要性的提示。

5 Java AWT Image的例子

让我们看一个简单的Java AWT Image类示例。

package com.yiidian;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class AwtControlDemo {

   private Frame mainFrame;
   private Label headerLabel;
   private Label statusLabel;
   private Panel controlPanel;

   public AwtControlDemo(){
      prepareGUI();
   }

   public static void main(String[] args){
      AwtControlDemo  awtControlDemo = new AwtControlDemo();
      awtControlDemo.showImageDemo();
   }

   private void prepareGUI(){
      mainFrame = new Frame("一点教程网:Java AWT Examples");
      mainFrame.setSize(400,400);
      mainFrame.setLayout(new GridLayout(3, 1));
      mainFrame.addWindowListener(new WindowAdapter() {
         public void windowClosing(WindowEvent windowEvent){
            System.exit(0);
         }        
      });    
      headerLabel = new Label();
      headerLabel.setAlignment(Label.CENTER);
      statusLabel = new Label();        
      statusLabel.setAlignment(Label.CENTER);
      statusLabel.setSize(350,100);

      controlPanel = new Panel();
      controlPanel.setLayout(new FlowLayout());

      mainFrame.add(headerLabel);
      mainFrame.add(controlPanel);
      mainFrame.add(statusLabel);
      mainFrame.setVisible(true);  
   }

   private void showImageDemo(){
      headerLabel.setText("Control in action: Image"); 

      controlPanel.add(new ImageComponent("d:/logo.png"));
      mainFrame.setVisible(true);  
   }
	
   class ImageComponent extends Component {

      BufferedImage img;

      public void paint(Graphics g) {
         g.drawImage(img, 0, 0, null);
      }

      public ImageComponent(String path) {
         try {
            img = ImageIO.read(new File(path));
         } catch (IOException e) {
            e.printStackTrace();
         }
      }

      public Dimension getPreferredSize() {
         if (img == null) {
            return new Dimension(100,100);
         } else {
            return new Dimension(img.getWidth(), img.getHeight());
         }
      }
   }
}

输出结果为:

热门文章

优秀文章