내에서 팝업 위치 지정 나는 JScrollPane
의 JTable
내부에 있습니다. 내가 테이블의 열 중 하나에 대한 사용자 정의 셀 편집기를 만들고,이 편집기가 스크롤을 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
절대 화면 위치를하고자한다. 비록 내가 owner
JScrollPane
을 전달한다고 할지라도 그것이 작동하지 않습니다. text.getX()
/text.getY()
을 사용하면 같은 문제가 발생합니다.
어떻게 Popup
직접 TextBox
아래에 배치 할 수 있습니다?
편집 : 스크롤 창 어디서나하지만 모든 방법을 위로 스크롤 할 때 owner.getLocationOnScreen().y + getY()
이 작동하지 않습니다. 그러나, 단지 일반 getLocationOnScreen().y
작동합니다. 문제가 해결되었습니다. 고마워요.