2011-12-05 1 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

당신은 모든 단일 레이아웃 매니저를 사용하여 시도하고 그들 중 누구도 당신이 원하는 것을 할 수 없다고 결정 했, 튜토리얼에 대한 How to Use Root Panes 예를 포함하여 기술된다? –

+0

그래, 난 (전화 걸기의 현재 위치에 따라) diffirent 장소에 그려진 사용자 지정 대화 상자가 있어야합니다. 다른 컨테이너에있는 구성 요소의 위치에 연결된 자체 컨테이너에 배치 할 수있는 적절한 레이아웃 관리자는 생각할 수 없습니다. –

답변