小编典典
根据应用程序或小程序是使用AWT还是Swing,答案会略有不同。
(基本上,以J诸如JApplet和JFrame为开头的类是Swing和Appletand Frame是AWT。)
无论哪种情况,基本步骤都是:
将图像绘制或加载到Image对象中。
在要绘制背景的绘画事件中绘制背景图像Component。
步骤1.
可以通过使用Toolkit类或通过ImageIO类来加载图像。
该Toolkit.createImage方法可用于Image从中指定的位置加载String:
Image img = Toolkit.getDefaultToolkit().createImage("background.jpg");
同样,ImageIO可以使用:
Image img = ImageIO.read(new File("background.jpg");
第2步。Component应该获取背景的绘画方法将被覆盖,并将其绘画Image到组件上。
对于AWT,要覆盖的paint方法是方法,并使用传递给该方法drawImage的Graphics对象的paint方法:
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方法是的方法JComponent,并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);
}
}
有关绘画的更多信息:
2020-09-16