Java多类绘画

| 我正在一个带有图形的项目中工作,到目前为止,我有两个不同的类,每个类都有图形。在两个类中都调用了
paint(Graphics g)
方法,但是当我执行它时,两个
JFrames
都在闪烁。 我的问题是:正确的方法是在一个类中调用项目的所有图形,还是需要为每个类创建新线程? 先感谢您。 代码段
public void paint(Graphics g) 
{ 
    repaint(); 
    mapLimits();
    moveEnemy();
    g.drawImage(background, 0,0, null); // draw background 
    drawImage(g, myHero, heroXposition, heroYposition, \"name\"); // draw hero 
    repaint(); 
}
对于库存类,绘制方法如下
public void paint(Graphics g) 
{ 
    g.drawImage(background, 0,0,null); //background 
    repaint(); 
} 
他们两个都被称为主类
Hero hero = new Hero(); 
hero.setVisible(true); 
Inventory inv = new Inventory(); 
inv.setVisible();
    
已邀请:
答案与ѭ5无关(或者,向此抛出线程将无法解决代码已存在的问题)。一切都归结为自定义绘画,并且正确地进行了绘画。 有关详细信息,请参见Java教程的表演自定义绘画课程。 一些常规技巧是: 切勿在顶层容器中覆盖ѭ6。完成这一分钟后,您发现自定义渲染可能会更好地显示为
JDialog
JInternalFrame
(等等),而不是您在其中编写的代码。 而是扩展extend9ѭ或
JPanel
之一。第一个用于完全自定义绘画,第二个用于将自定义绘画与其他组件结合在一起。在这些类中的任何一个中,都应覆盖
paintComponent(Graphics)
而不是
paint(Graphics)
。 对类和方法名称使用通用命名法。类
EachWordUpperCase
,方法和属性
firstWordLowerCase
,常量
ALL_UPPER_CASE
。如果您之外的任何人都可以阅读该代码,则这一点尤其重要。其他程序员使用名称的大小写来提供有关其性质/来源的提示。 不要在
paint(Graphics)
paintComponent(Graphics)
中呼叫
repaint()
。     

要回复问题请先登录注册