【发布时间】:2014-09-08 10:08:02
【问题描述】:
我想为我的 jFrame 设置背景,我正在使用以下代码:
import java.awt.Graphics;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class DemoBackgroundSwing extends JPanel {
private Image img;
public DemoBackgroundSwing() {
System.out.println("done");
img = Toolkit.getDefaultToolkit().createImage("red.png");
System.out.println("done");
loadImage(img);
System.out.println("done");
}
private void loadImage(Image img) {
try {
MediaTracker track = new MediaTracker(this);
track.addImage(img, 0);
track.waitForID(0);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
protected void paintComponent(Graphics g) {
setOpaque(false);
System.out.println("done");
g.drawImage(img, 0, 0, null);
super.paintComponent(g);
}
public static void main(String... argv) {
JFrame frame = new JFrame("Demo Background Image");
DemoBackgroundSwing back = new DemoBackgroundSwing();
System.out.println("done");
frame.getContentPane().add(back);
frame.setSize(400, 287);
frame.setVisible(true);
}
}
当我执行它时,在系统输出中我有 5 个“完成”。所以这意味着所有任务都已执行。 我不明白错误在哪里。请帮帮我!
【问题讨论】:
-
小提示:在不同的地方使用不同的调试信息。
-
对我有用,可能找不到你的 red.png 文件?
-
很抱歉,没有任何错误。它只是没有为我的框架设置任何背景。
-
如果您的 red.png 文件放在哪里?它在正确的目录中吗?
-
@sbat,我也这么认为,但我可以改变什么来验证它?