2011-11-07 19 views
0

私はGridLayoutを内部に持つJpanelを持っています。今度はPaintComponentで円を描画する別のJpanelを内部に追加しました。私は今、パネルのComponentCountその()を取得しようとしているが、それは失敗します。これは、マウスのトラッキングのための私のコードはS:Java getComponentCountが正しい値(常にゼロ)を返しません

public void mousePressed(MouseEvent me) { 
     int click_x = me.getX(); 
     int click_y = me.getY(); 
     int col = click_x/100; 
     int row = click_y/100; 
     System.out.println("select_C:"+col+" select_Y:"+row); 



     System.out.println("COMPONENT COUNT:"+positionPanels[col][row].getComponentCount()); 

    } 

それは大丈夫ですが、私はGridLayoutの(1で(JPanelのをコンテナをクリックすると、 1))は実際に別のコンポーネント(JPANEL)を含み、コンポーネントカウントとしてゼロを返します。あなたたちは私を助けることを願って、スクリーンショットに...のSystem.out出力を参照してください...赤い円がゼロに戻っクリックし、...

enter image description here

詳細はスクリーンショットを参照してください。

ありがとう

答えて

1

JPanelで描いた赤い丸はコンポーネントではありません。 JPanelにコンポーネントを含めるには、JPanelにJLabelを追加する必要があります(赤い円をアイコンとして追加するなど)。

JPanelに実際にコンポーネントを追加した場合は、おそらくpositionPanelが内部コンポーネントであり、含まれているコンポーネントではないことを意味します。コードを見ることなく、言うことは不可能です。

+0

本当ですか? JpanelでpaintComponentを使用しています...代わりにJLabelを使用することをお勧めしますか? (コンポーネントなので...)、スイングを使用することも義務的です。n –

+0

JPanelは確かにコンポーネントです。私はあなたがこのパネルに円を描いたのでgetComponentCountが1を返すと予想したという印象を受けました。そうでない場合は、コードを教えてください。見えないコードはデバッグできません。 –

+0

はい私は本当に1を返すと期待していましたが、0を返し続けます...どのコード部分が必要ですか? –

関連する問題