Java在JPanel类之外绘制图像
我有一个WorldManager类,它扩展了JPanel,并具有:Java在JPanel类之外绘制图像,java,image,class,jpanel,paint,Java,Image,Class,Jpanel,Paint,我有一个WorldManager类,它扩展了JPanel,并具有: public void paint(图形g){} 我想做的是拥有独立的类,比如一个拥有自己的绘制方法的世界级,并且能够像这样调用该类的绘制方法: public void paint(Graphics g){world1.paint();hero.paint();}原则上,您的方法没有问题 正如垃圾神所指出的,您应该覆盖paintComponent方法而不是paint方法 原因是:这样,paintBorder()和paintChi
public void paint(图形g){}
我想做的是拥有独立的类,比如一个拥有自己的绘制方法的世界级,并且能够像这样调用该类的绘制方法:
public void paint(Graphics g){world1.paint();hero.paint();}
原则上,您的方法没有问题
paintBorder()
和paintChildren()
方法可以绘制边框和子组件,您可以自由地只考虑真实内容class WorldManager extends JPanel
{
private World world1;
private Person hero;
public void paintComponent(Graphics g) {
super.paintComponent(); // paints the background, if opaque
world.paint(g);
hero.paint(g);
}
}
那么,实际上你的问题是什么?“Swing程序应该重写
paintComponent()
,而不是重写paint()
。@Paulo所以我在WorldManager中将我的paint方法改为paintComponent方法,并称为super.paintComponent(g)这是可行的,但你能解释一下为什么我必须使用油漆组件而不是常规的油漆方法吗?@Chris请不要忘记将问题标记为“已回答/正确”。这有助于以后搜索答案的人。