2016-05-09 10 views
0

Ich habe diese Anforderung, wo ich Menüs anzeigen muss, die mehrere Ebenen nach unten gehen können. Jetzt kann es auf jeder Ebene viele Objekte im Menü geben, was bedeutet, dass ich eine Bildlaufleiste im Menü anzeigen muss.Java mehrstufige Scroll-fähige Popup-Menüs

1 
1->1 
1->2 
2 

Ich bin in der Lage eine benutzerdefinierte Klasse ‚JScrollPopupMenu‘ zu schreiben, die eine Bildlaufleiste auf das Menü führt. Jetzt kann ich steuern, nur das erste Pop-up-Menü, sondern für die nächste Stufe Menüs Ich habe keine Kontrolle über das Popup-Menü Beispiel erstellt wird:

//this is the first pop-up menu 
JPopupMenu scrollablePopupMenu = new JScrollPopupMenu(); 
JMenu menu = new JMenu("1"); 
scrollablePopupMenu.add(menu); 
menu = new JMenu("2"); 
scrollablePopupMenu.add(menu); 
//this is the child menu for "1", I have no control over //childMenu.getPopupMenu(), this is created internally inside JMenu 
JMenu childMenu = new JMenu("1->1"); 
menu.add(childMenu); 
childMenu = new JMenu("1->2"); 
menu.add(childMenu); 

In dem obigen Beispiel die erste Stufe Pop-up hat eine Bildlaufleiste, aber die nächste Ebene Pop-up nicht. Gibt es einen Weg, wie dies erreicht werden kann?

+1

Für bessere Hilfe, früher, ein [MCVE] oder [kurze, selbständige, korrekte Beispiel] (http://www.sscce.org/). –

Antwort

1

Wenn Sie so viele Menüpunkte haben, sollten Sie Ihr GUI-Design überdenken.

1) Eine Daumenregel in Usability besagt, dass Sie nicht mehr als 8 Auswahlen in einer Gruppe anzeigen sollten.

2) Nur weil Windows ein scrollbares Menü im Startmenü hat, ist es kein gutes Beispiel dafür. In der Tat, Microsoft hat zugunsten der Suche stattdessen verlassen, nur weil ein riesiges scrollbares Menü nicht benutzerfreundlich ist.

Verwandte Themen