2011-11-07 112 views
0

我有一個帶有GridLayout的Jpanel。現在我在那裏添加了另一個Jpanel,它使用PaintComponent繪製一個圓。現在我試圖讓面板ComponentCount(),但它失敗:■這是我的鼠標跟蹤代碼: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()); 

    } 

也沒關係,但是當我點擊一個容器(JPanel中與網格佈局(1, 1))實際上包含另一個組件(JPANEL),它返回零作爲組件計數。請看截圖進一步的細節,...

enter image description here

點擊紅圈返回零...查看System.out的輸出...上的截圖,希望你們能幫助我。

謝謝

回答

1

在JPanel中繪製的紅色圓圈不是組件。您必須將JLabel(例如,以紅色圓圈爲圖標)添加到JPanel以使其包含組件。

如果實際添加了一些組件到JPanel中,那麼它可能意味着positionPanel是內部組件而不是包含組件。沒有看到代碼,就不可能說。

+0

你確定嗎?我在Jpanel上使用paintComponent ...你建議使用JLabel嗎? (因爲它是一個組件...),它也是強制性的,我使用swing .. n –

+0

JPanel絕對是一個組件。我的印象是,你期望getComponentCount返回1,因爲你在這個面板上畫了一個圓。如果情況並非如此,請告訴我們您的代碼。我們無法調試我們甚至看不到的代碼。 –

+0

是的,我確實希望它返回1,但它一直返回0 ...你需要哪個代碼部分? –