2011-12-05 37 views
1

我需要在窗口中設置組件的位置。 我需要在另一個被點擊的組件附近的GlassPane上繪製組件。我傳遞組件,它將點擊事件引發給某位經理,在那裏我想獲得座標在哪裏繪畫。Java。搖擺。絕對位置

public void mouseClicked(MouseEvent e) { 
       ApplicationManager.getInstance().drawOnGlassPane((Component e.getSource()); 
      } 

public void drawOnGlassPane(final Component caller) { 

     mainFrame = (JFrame) SwingUtilities.getWindowAncestor(caller); 
     JPanel glassPane = (JPanel) mainFrame.getGlassPane(); 
     glassPane.setVisible(true); 

     Point where = caller.getLocationOnScreen(); 
     JButton btn = new JButton("on glass pane"); 
     btn.setBounds((int) where.getX(), (int) (where.getY() + caller.getHeight()), 50, 20); 
     glassPane.add(btn); 
    } 
} 

新組件出現在錯誤的地方。我怎樣才能設置正確的位置?

+3

您是否嘗試過使用每一個佈局管理器,並決定,沒有人可以做你想做什麼? –

+0

好的,我必須在不同位置繪製自定義對話框(取決於調用者的當前位置)。我想不出合適的佈局管理器,它可以在與其他獨立容器中組件位置相連的容器中佈局。 –

回答