동적으로 생성 된 사용자 정의 JPanel 객체를 JScrollPane의 JPanel에 표시하는 팝업 메뉴가 있습니다. 팝업 메뉴는 사용자에게 권장 사항을 표시하고 최상위 요소는 가장 관련성이 높은 권장 사항입니다. 나는 창을 표시 JPopupMenu를 사용하고 있습니다 :팝업 윈도우의 JScrollPane이 프로그래밍 방식으로 위로 스크롤되지 않습니다.
JPanelTemplatePopup jptep = new JPanelTemplatePopup();
JPopupMenu popup = new JPopupMenu();
popup.add(jptep);
popup.show(this, 500, 100);
문제는, 나는 최상위 요소에 JScrollPane의 스크롤이 먼저 표시 할 수 없습니다. 나는 시도했다 :
- .getViewPort(). setViewPosition (새로운 포인트) (0,0));
- .scrollRectToVisible (firstelement.getBounds());
validate() s 이전 및 이후. 내가하는 일과 상관없이, 창이 팝업 될 때 스크롤 창은 항상 같은 위치에 있습니다.
나는 심지어 창을 표시하기 전에 일어난 작업이 무시되었다고 생각했기 때문에 클래스에서 공용 메서드를 만들고 호출하여 창을 표시 한 후 스크롤하도록했습니다. 아무것도 바뀌지 않았다.
도와주세요,
엠레
나는이 경쟁 조건과 유사하다 생각합니다. 팝업이 표시된 후 * 스크롤바를 업데이트해야합니다. 팝업이 완전히 표시 될 때 액션을 트리거하는 리스너를 찾아야한다고 생각합니다. – Emre