2014-11-23 100 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方法中繪製圖像精靈來顯示邏輯實體的位置。