2012-04-02 24 views
0

私は動くボールとすべてのものでPongゲームを作りたいと思います。私は中心線の両側に追加したい私のスコアのラベルに取り組んでいます。コンピュータのスコアのラベルとプレイヤーのスコアのラベル。問題は、私のパネルがBorderLayoutに設定されていることです。私はその場所に自分のパネルをどのように追加できるのか分かりません。ここJPanelにJLabelを追加 - 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); 
     } 

    }); 
} 

答えて

3

あなたは2つのオプションがあります。

  1. は、1行にそれらの両方を追加し2列GridLayoutしてから メインのBorderLayout.NORTHにそれを追加しますパネル

  2. playerPanelComputerPanelオブジェクトに組み込みます。 (私はComputerPanelcomputerPanelにも改めて書きます)。

+0

私はそれを前に試してみましたが、私はそれらを私のplayScreenに置いて欲しいと、別のパネルに入れてはいけません。 :| – MTHeadss

+0

JPanelsを入れ子にすることができますか?オプション1がそれを行い、あなたのプレイパネルに表示されます。オプション2でもかなり実行可能ですが、おそらくこのようなことが起こります:panPlayer1.add(player1Score、BorderLayout.EAST); (またはNORTH?)を使用するか、panPlayer1で絶対位置指定を使用します。 –

+0

私は私の問題を解決してください;) – MTHeadss

関連する問題