하위 메뉴에서 항목을 클릭하면 자연스럽게 그 아래에있는 메뉴 항목에 마우스를 그립니다. Windows와 Mac은 기본적으로 메뉴를 열기 전에 작은 지연을 가짐으로써이를 처리합니다. Swing JMenus는 이것을 처리하지 않고, 마우스가 잠시 가리켜 진 메뉴가 마우스가 의도 한 메뉴 항목에 도달하기 전에 열립니다.Java Swing - 하위 메뉴에서 항목을 선택할 때 관대함 추가
예를 들어, 아래 그림에서 Item 3
을 선택하려고 시도했지만 마우스가 Menu 2
에 잠깐 동안 미끄러지기 전까지 Menu 1
하위 메뉴가 사라졌습니다.
아무도이 문제를 해결하기위한 조언이나 제안이 있습니까? 내 생각은 마우스 처리기에 타이머를 추가 한 사용자 정의 MenuUI를 정의하는 것이 었습니다. delay
매개 변수를 보여 메뉴를 기다릴 밀리 초 단위의 양이 당신의 menu
변수에
public class Thing extends JFrame {
public Thing()
{
super();
this.setSize(new Dimension(500, 500));
final JPopupMenu pMenu = new JPopupMenu();
for (int i = 0; i < 5; i++)
{
JMenu menu = new JMenu("Menu " + i);
pMenu.add(menu);
for (int j = 0; j < 10; j++)
{
menu.add(new JMenuItem("Item " + j));
}
}
this.addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent e) {
pMenu.show(Thing.this, e.getX(), e.getY());
}
});
}
public static void main(String[] args)
{
Thing t = new Thing();
t.setVisible(true);
}
}
[이 포스트는 (http://bjk5.com/post/44698559168/breaking-down-amazons-mega-dropdown)을 검사하여이 문제를 해결하는 알고리즘에 관한 것이다 경로를 사용자가 삼각형에 대해 항목에서 멀리 이동할 때 걸리는 경로이지만 그 포스트의 맨 아래에 링크 된 jQuery 스크립트가 어떻게 이식 프레임 워크에 연결되는지는 잘 모르겠습니다. – akbiggs