繁体   English   中英

在Java中从多个类绘制到主类

[英]Drawing from multiple classes to the main class in Java

我正在尝试创建一个简单的游戏,但是在从主类中的多个类进行绘制时遇到了麻烦。 到目前为止,这是我的代码。

public static void main(String[] args) 
{
    JFrame mainGameFrame = new JFrame("Space4X");

    StarsPanel starsPanel = new StarsPanel();
    HomePlanet homePlanet = new HomePlanet();

    mainGameFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    mainGameFrame.setResizable(true);

    mainGameFrame.getContentPane().add(homePlanet);
    mainGameFrame.getContentPane().add(starsPanel);


    mainGameFrame.pack();
    mainGameFrame.setVisible(true);

}

public void HomePlanet()
{
  HomePlanet homePlanet = new HomePlanet();

}

}

这是我的HomePlanet课程,

package space4x;

import javax.swing.*;
import java.awt.*;

public class HomePlanet extends JPanel 
{


public void HomePlanet()
{

}


public void paintComponent (Graphics page)
{   
    //Draw planet
    super.paintComponent (page);
    page.setColor(Color.RED);
    page.fillRect(10,10,50,50);

}


}

我还有一个名为StarsPanel的类,它在随机位置绘制星星并且它工作得很好,但HomePlanet由于某种原因不会。

在主要类下,如果我有

mainGameFrame.getContentPane().add(starsPanel);

首先代替StarsPanel,它将绘制HomePlanet类下的内容,但不会绘制StarPanel类下的内容。

这让我疯狂,为什么我可以让一个人上班,而不是另一个。

请帮忙。

内容窗格默认使用BorderLayout。 将面板添加到内容窗格时,将其添加到BorderLayout的中心。 因此,当您添加第二个面板时,它将替换布局中心的第一个面板。

如果您希望将两个面板一个涂在另一个上面,那么您没有适当的策略。 创建一个面板,它结合了您目前拥有的两个面板的绘画。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM