JPopupMenu scrollen

Status
Nicht offen für weitere Antworten.

pipeman

Mitglied
Hallo zusammen!

Obwohl ich das Thema hier im Forum schon in einigen Beiträgen gefunden habe, bekomme ich mein JPopupMenu nicht mir Scrollbalken zum Laufen.

Hier der Code:
Code:
public Menustruktur(){
		super("Menustruktur");
		JPanel panel = new JPanel();
		JButton knopf = new JButton("Popup");
		knopf.addMouseListener(new MouseAdapter(){
    		public void mouseReleased(MouseEvent me){
    			JPopupMenu pop = new JPopupMenu();
    			JScrollPane jsp = new JScrollPane();
    			for (int m = 0; m < 55; m++){    				
    				JMenu menu = new JMenu("Menü " + m);
    				JScrollPane innerJsp = new JScrollPane();
    				for (int s = 0; s < 55; s++){
        				JMenu submenu = new JMenu("Submenü " + s);
        				submenu.add(new JMenuItem("Basis"));
        				submenu.add(new JMenuItem("Standard"));
        				submenu.add(new JMenuItem("Experte"));
        				innerJsp.add(submenu);
        			}
    				menu.add(innerJsp);
    				jsp.add(menu);
    				//pop.add(menu); // auskommentieren
    			}
    			pop.add(jsp);
    			pop.show( me.getComponent(), me.getX(), me.getY() );     			
    		}
		});
		panel.add(knopf);
		getContentPane().add(panel);
	}

Kann mir bitte jemand sagen, was ich falsch mache?

Herzlichen Dank und schönes Wochenende,

pipeman
 
Fein.

Nun addiere ich ja in der for-Schleife nach und nach die MenuItems auf die ScrollPane. wenn ich nun statt add setViewportView benutze, ist im Menu logischerweise immer nur der letzte Menüpunkt zu sehen. Ich brauche also eine Art Container, in den ich die einzelnen Menüpunkte packe, um den Container als Ganzes mit setViewportView dem JScrollPane zu übergeben.

So weit so richtig?

Nun die alles entscheidende Frage: Welchen Container nehme ich denn da? Ich habe es jetzt mit einem JPanel probiert. Das hat dann den Effekt, dass das Popupmenü wieder ausgeblendet wird, sobald ich mit der Maus in en Bereich des JPanels komme.

Gibt es da irgendeine elegante Lösung?

Kurze Anmerkung noch: gewünscht ist so etwas wie das alte scrollende Windows-Startmenü, am besten auch optisch daran angelehnt, oben und unten jeweils einen Pfeil zu haben, die das Menu scrollen, sobald man darauf zeigt, statt an der Seite einen Scrollbalken einzublenden.


Vielen Dank für die Hilfe,

pipeman
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben