将类添加到JFrame中

时间:2014-11-23 20:09:50

标签: java swing

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

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();  
    }

}

1 个答案:

答案 0 :(得分:2)

我建议您考虑

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