JList mit JPopupMenu

_streissi

Grünschnabel
schönen Nachmittag!

Ich hab folgendes Problem:
Ich habe eine JList erstellt und Elemente hinzugefügt und wenn ich rechts auf ein Element klicke kommt ein JPopupMenu was auch geht aber ich wüsste einfach nicht wie ich das anstelle das wenn ich auf den Popupeintrag klicke den Namen des Elementes ausgeben kann.

ich habe es schon mittels ActionListener probiert aber ich habe keine Ahnung wie ich da zu den Elementen der Liste komme?

mfg _streissi
 
Ich versteh net ganz was du vorhast. Welchen Elementnamen willst du haben? Erst erzaehlst du naemlich was von der Liste und Elementen und dann von dem popupmenueintrag.
 
also:
- stell dir vor du hast ne JListe voll mit Einträgen.
- dann rechtsklick auf eins und Popupmenu erscheint
- dann zb. auf kopieren aus dem Popupmenu anklicken und ich bekomm den Namen des angeklickten Listenelementes zurück, da ich den für spätere Aufgaben brauche die die Funktion kopieren auslöst.
 
Zuletzt bearbeitet:
so sieht mein ActionListener aus:

ign: ist das JMenuItem des Popupmenu

Code:
public void actionPerformed(ActionEvent e) {
		if(e.getSource() == ign){
			if (index_user >= 0){
                        System.out.println(theList.getModel().getElementAt(index_user).toString());
			}
		}
}

MouseListener:
theList: ist global angelegt
index_user: ebenfalls global angelegt und sollte der indes des angeklickten JList Eintrages sein
Code:
public void mouseClicked(MouseEvent e) {
	theList = (JList) e.getSource();
   
        if(e.isPopupTrigger()){
        	index_user = theList.locationToIndex(e.getPoint());
        }
}

aber er gibt mir immer den ersten Element name der JListe aus egal welches ich anklicke

wahrscheindlich gehe ich das Problem völlig falsch an aber ka wie das sonst gehen sollte
 
Ohne mir das jetzt genauer anzusehen, hast du ma probiert dir den e.getPoint und das index_user ausgeben zu lassen, so geh ich fehler immer an, damit du sehen kannst ob er das ueberhaupt aktualisiert.
Hast du ma "getSelectedIndex" probiert wie aus den Beispielen, oder t das nur mit linker Maustaste?
 
also hab das problem gefunden

also der ActionListener bleibt gleich

aber bei dem MouseListener gehört das in den mouseReleased und nicht in Clicked
außerdem wird das Popupmenu jt über den MouseListener geregelt
vorher hatte ich das Popupmenu mit:
Code:
list.setComponentPopupMenu(popup);

und jt einfach MouseListener bei der list hinzugefügt

nochmal der richtige Code:
Code:
public void mouseReleased(MouseEvent e) {
	theList = (JList) e.getSource();
   
        if(e.isPopupTrigger()){
                pm.show(e.getComponent(), e.getX(), e.getY());
        	index_user = theList.locationToIndex(e.getPoint());
        }
}

ty MiMi
 
Zurück