我是 Java 新手,目前正在创建一个带有图形的游戏。我有这个课程从JFrame
。在这个班级里,我有很多JPanel
需要图像作为背景。据我所知,为了能够在 JPanel 中绘制图像,我需要一个从 JPanel 扩展的单独的类以及该类的paintComponent
方法将完成这项工作。但我不想为每个人单独开设课程JPanel
,我有太多了;事实上我只关心背景。我怎样才能做到这一点?是匿名内部类吗?如何?
为了更好地理解我提供了一些代码:
public GUI extends JFrame {
private JPanel x;
...
public GUI() {
x = new JPanel();
// put an image background to x
}
为什么不创建一个需要Image
??
public class ImagePane extends JPanel {
private Image image;
public ImagePane(Image image) {
this.image = image;
}
@Override
public Dimension getPreferredSize() {
return image == null ? new Dimension(0, 0) : new Dimension(image.getWidth(this), image.getHeight(this));
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g.create();
g2d.drawImage(image, 0, 0, this);
g2d.dispose();
}
}
您甚至会提供有关应该在哪里绘制的提示。
这样,您可以在需要时简单地创建一个实例
Updated
另一个问题是,为什么?
你可以只使用一个JLabel
这将为您绘制图标,无需任何额外的工作......
See 如何使用标签 http://docs.oracle.com/javase/tutorial/uiswing/components/label.html更多细节...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)