2014-11-23 141 views
0

我有一个类Player和class Enemies,这些类有方法paint()。 我如何将玩家和敌人添加到JFrame中并从这些类的方法paint()中更改图片? 我的代码结果:这些类的方法paint()的图片覆盖彼此。如何避免它?将类添加到JFrame中

import java.awt.BorderLayout; 

import javax.swing.JFrame; 
import javax.swing.JPanel; 

public class RunGame { 

    public static void CreateFrame() 
    { 

     JFrame f = new JFrame("Shoot, player!"); 
     f.setLayout(new BorderLayout()); 
     f.setSize(1366, 764); 
     f.setVisible(true); 
     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     f.add(new Player(),BorderLayout.CENTER); 
     f.add(new Enemies(),BorderLayout.CENTER); 
    } 
    public static void main(String[] args) { 
     CreateFrame(); 
    } 

} 
+0

我要*猜*并说没有工作。请发布'玩家'和/或'敌人';至少足以让我们看到什么不起作用。 – 2014-11-23 20:13:22

+0

*“这些类的方法paint()的图片互相覆盖。如何避免它?”*你想让它们叠加在另一个之上,还是彼此相邻? – 2014-11-23 20:13:29

回答

2

我建议你考虑

  • 制作播放器和敌人逻辑类,而不是GUI组件类,因为这将允许重叠。
  • 将程序的逻辑部分与GUI部分分开,创建至少一个模型视图结构或更好地模型控制视图。
  • 让您的视图类(GUI)通过在视图中显示的JPanel的paintComponent方法中绘制图像精灵来显示逻辑实体的位置。