2016-08-22 10 views
-3

私は自分の楽しみのために小さなゲームを作っています.JPrameにJPanelを追加すると、他のクラスで描いたことが何も表示されません。私のJPanel上のものが表示されません。 JAVA

はここに私のメインクラス

package Game; 

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


public class Frame { 
    static JFrame f = new JFrame("xx"); 
    public static JLabel points = new JLabel(); 
    public static void main(String[] args) { 

     Player pl = new Player(); 
     JPanel p = new JPanel(); 
     points.setFont(new Font("Verdana",1,20)); 

     p.add(pl); 
     p.add(points); 


     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     f.setResizable(false); 
     f.setSize(800, 800); 
     f.setTitle("Box Game"); 
     f.add(p);   


     f.setVisible(true); 
    } 
} 

私は...誰かが私を助けてくださいすることができますので、おかげでそれを考え出す苦労しています!

+0

私は 'JLabel myJLabel = new JLabel(" My JLabel ")を追加しました。 p.add(myJLabel); 'と表示されています。 – tnas

+0

このクラスはうまくいきます。何も入れていないのでラベルは表示されません。何かを表示するはずだったら、おそらくプレーヤークラスに問題があります。 –

+2

[mcve]を作成して投稿する必要があります。リンクをお読みください。 –

答えて

0

私は他のクラスに描画しているものは何も表示されていません。

パネルにコンポーネントを追加します。 JPanelはデフォルトでFlowLayoutを使用します。 FlowLayoutは、パネルに追加するコンポーネントの推奨サイズを基準にしています。コンポーネントがペイントしない場合、コンポーネントの推奨サイズはおそらく(0、0)です。

何も私はあなたがカスタムペイントをしているなら、あなたはそのサイズを返すために、クラスのgetPreferredSize()メソッドをオーバーライドすることを確認する必要があり

私の他のクラスで描かれていることが現れていませんレイアウトマネージャはその仕事をすることができます。

詳細については、Custom PaintingのSwingチュートリアルのセクションを読んで開始してください。

関連する問題