我正在制作一个包含游戏面板的游戏,游戏循环在其中绘制游戏。它还包含一个面板,该面板具有用于启动游戏循环的按钮。游戏面板的背景只能在游戏开始时绘制一次。这是因为不应在每次重新绘制时都擦除游戏图形。我遇到两个问题,最初没有绘制背景,并且在游戏面板上绘制了用于启动循环的按钮。
我试图将问题简化为最简单的形式,这就是我所拥有的:
public class Graphics_Trouble extends JFrame
{
private MainPanel mainPanel = new MainPanel();
private JPanel menuPanel = new JPanel();
private JButton start = new JButton("Start");
public Graphics_Trouble()
{
start.addActionListener(new java.awt.event.ActionListener()
{
@Override
public void actionPerformed(java.awt.event.ActionEvent evt)
{
StartActionPerformed(evt);
}
});
menuPanel.add(start);
add(menuPanel, BorderLayout.PAGE_START);
add(mainPanel, BorderLayout.CENTER);
pack();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void StartActionPerformed(java.awt.event.ActionEvent evt)
{
mainPanel.start();
}
public static void main(String[] args)
{
java.awt.EventQueue.invokeLater(new Runnable()
{
@Override
public void run()
{
new Graphics_Trouble().setVisible(true);
}
});
}
}
class MainPanel extends …Run Code Online (Sandbox Code Playgroud)