在JPanel上添加JLabel - BorderLayout

时间:2012-04-02 02:38:20

标签: java swing panel jlabel border-layout

我想制作一个带有移动球和所有东西的Pong游戏。我现在正在研究我想要在中心线两侧添加的分数标签。一个用于计算机得分的标签,另一个用于玩家得分。问题是我的面板设置为BorderLayout。我不知道如何将我的面板添加到该位置。

这是我的构造函数代码:

 * Constructor : PlayPanel.java
 */
// ==============================================
public PlayPanel() {
    super(new BorderLayout());
    setBackground(Color.DARK_GRAY);

    panPlayer1 = new JPanel();
    panComputer = new JPanel();

    padPlayer1 = new JPanel();
    padComputer = new JPanel();

    padPlayer1.setPreferredSize(PADPANEL_SIZE);
    padComputer.setPreferredSize(PADPANEL_SIZE);

    panPlayer1.setBackground(PAN_PLAY);
    panComputer.setBackground(PAN_PLAY);

    panPlayer1.add(padPlayer1);
    panComputer.add(padComputer);

    add(panPlayer1, BorderLayout.WEST);
    add(panComputer, BorderLayout.EAST);

    player1Score.setFont(FONT_SCORE);
    ComputerScore.setFont(FONT_SCORE);

    // Add them to each side if the line !?!?!?!?!?!?
    add(player1Score);
    add(ComputerScore);

    addMouseMotionListener(this);

    panPlayer1.addComponentListener(new ComponentAdapter() {

        @Override
        public void componentResized(ComponentEvent arg0) {
            setPanPanelWidth(arg0.getComponent().getSize().width);
            setPanPanelHeight(arg0.getComponent().getSize().height);
        }

    });

    addComponentListener(new ComponentAdapter() {

        @Override
        public void componentResized(ComponentEvent arg0) {

            setPlayPanelWidth(arg0.getComponent().getSize().width);
            setPlayPanelHeight(arg0.getComponent().getSize().height);
        }

    });
}

1 个答案:

答案 0 :(得分:3)

您有两种选择:

  1. 将它们添加到1行,2列GridLayout,然后将其添加到您的BorderLayout.NORTH 主要小组

  2. 将它们合并到playerPanelComputerPanel个对象中。 (我还会将ComputerPanel改为computerPanel)。