最后成功创建了一个JPanel,我也可以绘制图形;但是我怎么把它放在BorderLayout中呢?

时间:2016-05-01 19:52:48

标签: java swing jframe jpanel border-layout

我最近一直在学习如何用Java编程,现在才开始尝试创建游戏。不幸的是,我只知道我从书中读到的内容和一些视频。我最初尝试创建一个包含5个面板和BorderLayout的游戏,但之后无法绘制图形。 我实际上就这个问题制作了这个帐户,我不确定我做错了什么。事实证明我犯了很多错误。 现在,我已经学会了制作一个可以绘制图形的面板;我不确定如何将其实际放入BorderLayout.CENTER,因为它似乎与我之前制作一个新的JPanel"时的方式不同。 我道歉但似乎有点慢。

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

  public class GameScene2
  {
     public static void main(String[] args)
     {
        SwingUtilities.invokeLater(new Runnable()
        {
           public void run()
           {
              mainGameScene();
           }
        });
     }

     private static void mainGameScene()
     {
        JFrame window = new JFrame("This is my first game : o");
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        window.add(new mainGamePanel());
        window.pack();
        window.setVisible(true);
     }
  }

  class mainGamePanel extends JPanel
  {
     public Dimension getPreferredSize()
     {
        return new Dimension(1280, 720);
     }

     public void paintComponent(Graphics pencil)
     {
        super.paintComponent(pencil);

        pencil.drawString("Boo", 100, 100);
     }
  }

1 个答案:

答案 0 :(得分:3)

Panel p = new Panel();
p.setLayout(new BorderLayout());

将其添加到框架中。

以下是解释如何使用Borderlayout:

的完整链接

https://docs.oracle.com/javase/tutorial/uiswing/layout/border.html

这解释了如何将其添加到面板:

https://docs.oracle.com/javase/7/docs/api/java/awt/BorderLayout.html

修改

原来你有 window.add(new mainGamePanel());

而不是尝试

mainGamePanel p = new mainGamePanel();
p.setLayout(new BorderLayout());
window.add(p);