根据应用程序或小程序是否使用,答案会略有不同AWT http://java.sun.com/javase/6/docs/technotes/guides/awt/ or Swing http://java.sun.com/docs/books/tutorial/uiswing/index.html.
(基本上,以J
例如JApplet
and JFrame
是摇摆,并且Applet
and Frame
是 AWT。)
无论哪种情况,基本步骤都是:
- 绘制或加载图像到
Image
object.
- 在绘画事件中绘制背景图像
Component
你想绘制背景。
Step 1.加载图像可以通过使用Toolkit http://java.sun.com/javase/6/docs/api/java/awt/Toolkit.html类或由ImageIO http://java.sun.com/javase/6/docs/api/javax/imageio/ImageIO.html class.
The Toolkit.createImage http://java.sun.com/javase/6/docs/api/java/awt/Toolkit.html#createImage(java.lang.String)方法可用于加载Image
从指定的位置String
:
Image img = Toolkit.getDefaultToolkit().createImage("background.jpg");
相似地,ImageIO
可以使用:
Image img = ImageIO.read(new File("background.jpg");
Step 2.绘画方法为Component
应该得到背景将需要被覆盖并绘制Image
到组件上。
对于 AWT,要重写的方法是paint http://java.sun.com/javase/6/docs/api/java/awt/Component.html#paint(java.awt.Graphics)方法,并使用drawImage http://java.sun.com/javase/6/docs/api/java/awt/Graphics.html#drawImage(java.awt.Image,%20int,%20int,%20java.awt.image.ImageObserver)的方法Graphics http://java.sun.com/javase/6/docs/api/java/awt/Graphics.html被传递到的对象paint
method:
public void paint(Graphics g)
{
// Draw the previously loaded image to Component.
g.drawImage(img, 0, 0, null);
// Draw sprites, and other things.
// ....
}
对于 Swing,重写的方法是paintComponent http://java.sun.com/javase/6/docs/api/javax/swing/JComponent.html#paintComponent(java.awt.Graphics)的方法JComponent http://java.sun.com/javase/6/docs/api/javax/swing/JComponent.html,并画出Image
与 AWT 中所做的一样。
public void paintComponent(Graphics g)
{
// Draw the previously loaded image to Component.
g.drawImage(img, 0, 0, null);
// Draw sprites, and other things.
// ....
}
简单组件示例
这是一个Panel
它在实例化时加载图像文件,并在自身上绘制该图像:
class BackgroundPanel extends Panel
{
// The Image to store the background image in.
Image img;
public BackgroundPanel()
{
// Loads the background image and stores in img object.
img = Toolkit.getDefaultToolkit().createImage("background.jpg");
}
public void paint(Graphics g)
{
// Draws the img to the BackgroundPanel.
g.drawImage(img, 0, 0, null);
}
}
有关绘画的更多信息:
- 在 AWT 和 Swing 中绘画 http://java.sun.com/products/jfc/tsc/articles/painting/
-
课程:进行定制绘画 http://java.sun.com/docs/books/tutorial/uiswing/painting/ from Java 教程 http://java.sun.com/docs/books/tutorial/index.html可能有帮助。