2009-05-21 5 views
0

내에서 팝업 위치 지정 나는 JScrollPaneJTable 내부에 있습니다. 내가 테이블의 열 중 하나에 대한 사용자 정의 셀 편집기를 만들고,이 편집기가 스크롤을 JList 팝업 싶어. 나는 Popup을 사용하여 JList을 포함하는 새로운 JScrollPane을 보여줌으로써 이것을 수행했습니다.스윙 : JScrollPane의

모든 것이 Popup의 위치를 ​​제외하고, 노력하고 있습니다. 에디터 내 사용자 지정 구성 요소는 다음과 같이 기본적으로 같습니다

public class CustomPanel extends JPanel { 
    JTextField text = new JTextField(); 
    JList list = new JList(); 
    JScrollPane scroll = new JScrollPane(list); 
    Component owner = null; 
    public CustomPanel(Component owner) { 
     this.owner = owner; 
     add(text); 
    } 
    public void showPopup() { 
     Popup p = PopupFactory.getPopup(owner, scroll, getX(), getY()+getHeight()); 
     p.show(); 
    } 
} 

어떤 일이 일어나고 것은 getX()getY() 그것을 들고가 JScrollPane에 테이블 셀의 위치를 ​​반환하는 것입니다, 그리고 Popup 절대 화면 위치를하고자한다. 비록 내가 ownerJScrollPane을 전달한다고 할지라도 그것이 작동하지 않습니다. text.getX()/text.getY()을 사용하면 같은 문제가 발생합니다.

어떻게 Popup 직접 TextBox 아래에 배치 할 수 있습니다?

그냥 좀 더 배경 : 최종 목표는 쉼표로 구분 된 목록으로 선택한 모든 항목을 표시하는 다중 선택 콤보입니다. 이 같은 것이 이미 존재하는 경우 주저하지 말고 저에게 알려주십시오.

편집 : 스크롤 창 어디서나하지만 모든 방법을 위로 스크롤 할 때 owner.getLocationOnScreen().y + getY()이 작동하지 않습니다. 그러나, 단지 일반 getLocationOnScreen().y 작동합니다. 문제가 해결되었습니다. 고마워요.

답변