【发布时间】:2015-05-19 15:14:59
【问题描述】:
int x = 0;
int y = 0;
Image img;
Screen screen;
GamePanel() {
setBounds(0, 0, 600, 600);
setLayout(null);
setVisible(true);
setBackground(new Color(100, 0, 0));
screen = new Screen();
screen.setBounds(0, 0, 600, 600);
add(screen);
img = Toolkit.getDefaultToolkit().createImage("monster.jpg");
}
public void repaintScreen(){
screen.repaint();
}
private class Screen extends JLabel{
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.BLACK);
g.drawRect(10, 10, 100, 100);
g.drawImage(img, 0, 0, this);
}
}
您好,我正在尝试绘制图像,但它永远无法正常工作。我还尝试以不同的方式加载图像,但始终相同。但是没有警告,所以出现了类似的东西。 但是当我把它作为一个图标放在 JLable 中时,它就可以工作了。
【问题讨论】:
-
为什么?
JLabel已经支持显示图片... -
是的,这就是为什么我的类 Screen 从标签扩展
-
但是为什么不直接使用
setIcon呢?为什么需要自己绘制图像? -
因为我后来有更多的照片,并认为会更好,但也许我错了
-
如果您只想显示它们,
JLabel很好,您也可以使用setIcon更改显示的图像,所有这些都是自动的
标签: java swing jlabel paintcomponent