Java 提供大量加载和显示图像的方法,可以使用 ImageIO,Jimi 或 JAI 中提供的一些 API,在这里简单地说几种 AWT 中加载和显示图像的方法。
1、使用 java.applet.Applet 提供的 getImage() 方法
abstract Image |
getImage(String filename) Returns an image which gets pixel data from the specified file, whose format can be either GIF, JPEG or PNG. |
abstract Image |
getImage(URL url) Returns an image which gets pixel data from the specified URL. |
import java.net.URL;
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Image;

public class ImageTestAppletSimple

extends Applet
{
private Image im;


public void init()
{
// 指定这个 applet 位置的 URL
URL codebase = getCodeBase();

im = getImage(codebase, "lena.jpg");
}


public void paint(Graphics g)
{
g.drawImage(im, 0, 0, this);
}
}
2、使用 java.awt.Toolkit 提供的 getImage() 方法
abstract Image |
getImage(String filename) Returns an image which gets pixel data from the specified file, whose format can be either GIF, JPEG or PNG. |
abstract Image |
getImage(URL url) Returns an image which gets pixel data from the specified URL. |
import java.awt.*;
import java.awt.event.*;

public class ImageTestApplication

extends Frame
{
Insets insets;
Image im;


static public void main(String args[])
{
ImageTestApplication app = new ImageTestApplication();
app.show();
}


public ImageTestApplication()
{
super("Image Test");
im = Toolkit.getDefaultToolkit().getImage("lena.jpg");


addWindowListener(new WindowAdapter()
{

public void windowClosing(WindowEvent event)
{
dispose();
System.exit(0);
}
});
}


public void addNotify()
{
super.addNotify();
insets = getInsets();
setBounds(100, 100, 300 + insets.left, 300 + insets.top);
}


public void paint(Graphics g)
{
g.drawImage(im, insets.left, insets.top, this);
}
}
3、将图像作为资源加载
·java.lang.Class<t></t> 提供的下面2个方法加载资源
·java.awt.Component 中提供方法来创建图像
·java.awt.Toolkit 中提供方法来创建图像
Image |
createImage(byte[] imagedata) Creates an image which decodes the image stored in the specified byte array. |
abstract Image |
createImage(byte[] imagedata, int imageoffset, int imagelength) Creates an image which decodes the image stored in the specified byte array, and at the specified offset and length. |
abstract Image |
createImage(ImageProducer producer) Creates an image with the specified image producer. |
abstract Image |
createImage(String filename) Returns an image which gets pixel data from the specified file. |
abstract Image |
createImage(URL url) Returns an image |
import java.applet.Applet;
import java.net.URL;
import java.awt.*;
import java.awt.image.ImageProducer;
import java.awt.event.*;

public class Test

extends Applet
{
Image im;


public void start()
{
URL url = getClass().getResource("lena.jpg");


try
{
im = createImage( (ImageProducer) url.getContent());


if (im == null)
{
System.out.println("null image");
}

}

catch (Exception e)
{
e.printStackTrace();
}
}


public void paint(Graphics g)
{
Insets insets = getInsets();

g.drawImage(im, insets.left, insets.top, this);
}


public void update(Graphics g)
{
paint(g);
}
}
分享到:
相关推荐
解决java软件中Myeclipse 中的awt乱码问题
对于图像显示,AWT提供了一个名为`java.awt.Image`的类,它可以加载和显示图像。通过`ImageIcon`类,我们可以将图像与组件关联起来,例如设置为按钮的图标或在标签中显示。以下是一个简单的代码示例,展示如何加载和...
5. **标签和描述中的源码**:查看博文链接,虽然没有给出具体代码,但通常会涉及到对AWT组件的编码设置,例如`setPreferredSize`, `setFont`等方法的使用,以及如何在程序启动时设置系统属性。 6. **工具的使用**:...
在Java编程领域,Swing、AWT和SWT都是用于构建图形用户界面(GUI)的框架。本篇文章将详细介绍如何在Eclipse集成开发环境中(IDE)搭建这些框架的开发环境,以及可以使用的相关插件。 首先,让我们从AWT(Abstract ...
你可以通过获取组件的`Graphics`对象,然后调用其各种绘图方法来绘制线条、形状、文本和图像。例如,`drawRect()`用于绘制矩形,`drawLine()`用于绘制直线,`drawString()`用于绘制文本,等等。此外,还可以使用`...
### Java中AWT和Swing的关系及区别 #### 一、AWT简介 AWT(Abstract Window Toolkit,抽象窗口工具包)是Java最早提供的用于创建图形用户界面(GUI)的API之一。它由一系列用于创建GUI组件(如按钮、文本框等)的...
主要是总结了awt和swing常用组件中常用方法概况。
- **AWT**:AWT中的事件模型使用了适配器和监听器,如ActionListener和WindowListener。 - **Swing**:Swing在AWT的基础上扩展了事件模型,增加了更多的事件类和监听器,如ActionEvent、MouseListener和...
Event类是所有AWT事件的基础,而EventListener和EventHandler接口定义了事件处理的接口和方法。 6. **其他类与接口**:如MenuBar、MenuItem、Checkbox、Choice等,用于创建菜单和下拉列表,以及Font、Color等用于...
什么是AWT 用AWT构建GUI 事件处理 AWT组件类库
这个"awt.rar"压缩包显然是一个关于Java AWT绘图的学习资源,适合初学者了解和实践AWT模块的绘图功能。 在Java中,AWT绘图是通过`Graphics`类来实现的,它是所有可绘制对象的基础。当你创建一个AWT组件,如`Canvas`...
【Java AWT和JAI技术在生物数据库图像显示上的应用】 Java AWT(Abstract Window Toolkit)和JAI(Java Advanced Imaging)是Java平台中的两个重要技术,主要用于图形用户界面(GUI)的创建和图像处理。在生物信息...
AWT(Abstract Window Toolkit),即抽象窗口工具包,是Java API为Java程序提供的建立图形用户界面的基本工具集,AWT可以用于Java Application和Java Applet的图形用户界面的创建。 AWT工具集简介 AWT工具集是Java ...
包括四个方法:`componentMoved(ComponentEvent e)`、`componentHidden(ComponentEvent e)`、`componentResized(ComponentEvent e)` 和 `componentShown(ComponentEvent e)`,分别处理组件移动、隐藏、缩放和显示...
### AWT与Swing的深度解析及对比 #### 一、AWT:抽象窗口工具包的探索 **AWT**,即Abstract Window...在实际开发中,根据项目需求和目标平台的特点,合理选择AWT或Swing,或者结合两者的优势,将是开发者成功的关键。
其基本的AWT库处理用户界面元素的方法是把这些元素的创建和行为委托给每个目标平台上的本地GUI工具进行处理。这样,从理论上讲,我们所编写的图形界面程序能运行在任何平台上,实现了图形界面程序的跨平台运行。 在...
Applet的主要生命周期方法包括`init()`, `start()`, `stop()`, 和 `destroy()`,它们分别在Applet加载、开始执行、暂停执行和卸载时被调用。 例如,一个简单的Hello World Applet可能如下所示: ```java import ...
每个AWT组件都有自己的属性(如颜色、字体)和方法(如设置文本、获取焦点),用于定制和操作组件。例如,`Button`的`setText()`方法可以改变按钮上的文字。 **7. AWT与Swing的关系** Swing是建立在AWT之上的轻量级...
2. **布局管理器**: AWT中提供了几种布局管理器,如FlowLayout、BorderLayout、GridLayout和CardLayout,它们用于自动调整组件的位置和大小。例如,`FlowLayout`会按照顺序从左到右、从上到下放置组件,而`...
Java AWT(Abstract Window Toolkit)是...同时,AWT虽然历史悠久,但在现代Java GUI开发中,Swing和JavaFX已经成为更常用的选择,它们提供了更多的功能和更好的性能。因此,了解AWT的同时,也要关注这些更新的技术。