tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
7
ZUGRIFFE
1120
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    _streissi _streissi ist offline Mitglied
    Registriert seit
    Feb 2009
    Ort
    Scheibbs (Niederösterreich)
    Beiträge
    11
    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
     

  2. #2
    MiMi MiMi ist offline Mitglied Smaragd
    Registriert seit
    Sep 2007
    Beiträge
    1.177
    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.
     

  3. #3
    _streissi _streissi ist offline Mitglied
    Registriert seit
    Feb 2009
    Ort
    Scheibbs (Niederösterreich)
    Beiträge
    11
    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.
     

  4. #4
    MiMi MiMi ist offline Mitglied Smaragd
    Registriert seit
    Sep 2007
    Beiträge
    1.177
    Also musst du nur wissen welcher Eintrag in der JList selectiert ist

    [URL]http://www.exampledepot.com/egs/javax.swing/list_ListGetSel.html[/URL

    Und hier nochmal genau ausgelegt wie man auch das mit ActionListener macht
    http://java.sun.com/docs/books/tutor...ents/list.html

    Hier nochma mit Beispiel
    http://www.velocityreviews.com/forum...m-a-jlist.html

    Wenn es dann net geht, poste einfach mal deinen source und zeig uns woran es scheitert
    Geändert von MiMi (26.05.09 um 14:58 Uhr)
     

  5. #5
    _streissi _streissi ist offline Mitglied
    Registriert seit
    Feb 2009
    Ort
    Scheibbs (Niederösterreich)
    Beiträge
    11
    so sieht mein ActionListener aus:

    ign: ist das JMenuItem des Popupmenu

    Code :
    1
    2
    3
    4
    5
    6
    7
    
    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 :
    1
    2
    3
    4
    5
    6
    7
    
    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
     

  6. #6
    MiMi MiMi ist offline Mitglied Smaragd
    Registriert seit
    Sep 2007
    Beiträge
    1.177
    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?
     

  7. #7
    _streissi _streissi ist offline Mitglied
    Registriert seit
    Feb 2009
    Ort
    Scheibbs (Niederösterreich)
    Beiträge
    11
    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 :
    1
    
    list.setComponentPopupMenu(popup);

    und jt einfach MouseListener bei der list hinzugefügt

    nochmal der richtige Code:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    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
     

  8. #8
    MiMi MiMi ist offline Mitglied Smaragd
    Registriert seit
    Sep 2007
    Beiträge
    1.177
    Na dann Glueckwunsch Bitte als erledigt markieren
     

Ähnliche Themen

  1. JTextField & JPopupMenu
    Von PeteProgram im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 16
    Letzter Beitrag: 15.11.10, 16:16
  2. JPopupMenu auf JTabbedPane
    Von zer0 im Forum Java
    Antworten: 2
    Letzter Beitrag: 06.08.10, 13:14
  3. Alle Einträge einer JList mittels JPopupMenu selektieren
    Von Alex08 im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 11.08.08, 14:55
  4. JPopupMenu und Vorauswahl
    Von Rhax im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 0
    Letzter Beitrag: 15.11.07, 14:58
  5. JTabbedPane und JPopupMenu
    Von Wyatt im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 3
    Letzter Beitrag: 19.06.07, 13:27

Stichworte