tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von newangel85
  • 1 Beitrag von zerix
ERLEDIGT
NEIN
ANTWORTEN
14
ZUGRIFFE
8925
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    newangel85 newangel85 ist offline Mitglied
    Registriert seit
    Mar 2007
    Beiträge
    16
    Hallo zusammmen,ich bin java neuling.
    Ich hab ein Jlist inder elemente enthalten sind. Nun möchte ich das ich wenn ich ein Element selektiert habe und rechts klick durchführe ein kontextmenu aufgeht wo ich infos zu den element lesen kann.

    ich hab leider kein plan wie ich das anstelle.
    für hilfe wäre ich dankbar.
     

  2. #2
    MeinerEiner_80 Tutorials.de Gastzugang
    Moin!
    Fuege deiner Komponente einen MouseListener hinzu.
    Sobald die rechte Maustaste geklickt wird, zeigst du einfach ein Popup Menu mit dem gewünschten Inhalt an:
    Ungefähr so:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    yourList.addMouseListener(new MouseAdapter() {
            public void mouseReleased(MouseEvent evt) {
                if (evt.isPopupTrigger()) {
                    showMenu(evt);
                }
            }
        });
    public void showMenu(MouseEvent evt){
       JPopupMenu menu = new JPopupMenu();
       JMenuItem item = new JMenuItem(yourList.getSelectedItem().toString());
       item.addActionListener(yourActionListener);
       menu.add(item);
       menu.show(yourList, evt.getX(), evt.getY()); 
    }

    *grüssle*
    MeinerEiner
     

  3. #3
    Avatar von zerix
    zerix zerix ist offline Hausmeister
    tutorials.de Moderator
    Registriert seit
    May 2005
    Beiträge
    4.335
    Hallo,

    kann ja sein, dass ich mich irre, aber ich kenne ein Kontextmenu als Popup.
    Wie das funktioniert kannst du dir hier anschauen.
    http://www.galileocomputing.de/openb...78ed7ccd37f484

    In dem Buch findest du auch sonst nützliche Informationen zu Java.


    MFG

    zEriX


    Edit: Da war Meiner_Einer schon wieder ein paar Sekunden schneller.
     
    Es ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)

  4. #4
    newangel85 newangel85 ist offline Mitglied
    Registriert seit
    Mar 2007
    Beiträge
    16
    Vielen Danke für die Hilfe, ihr seit echt Klasse
     

  5. #5
    newangel85 newangel85 ist offline Mitglied
    Registriert seit
    Mar 2007
    Beiträge
    16
    er zeigt mir bei jList.addMouseListener(new MouseAdapter() ein fehler an das der identifier fehlt.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    jList.addMouseListener(new MouseAdapter()
        {
          public void mouseReleased(MouseEvent evt)
          {
            if (evt.isPopupTrigger())
            {
              showMenu(evt);
            }
          }
        });
        public void showMenu(MouseEvent evt)
        {
          JPopupMenu jKontent = new JPopupMenu();
          JMenuItem jInfo = new JMenuItem(jList.getSelectedItem().toString());
          jInfo.addActionListener(yourActionListener);
          jKontent.add(jInfo);
          jKontent.show(jList, evt.getX(), evt.getY());
        }
     

  6. #6
    MeinerEiner_80 Tutorials.de Gastzugang
    Moin!
    Code :
    1
    
    Info.addActionListener([B]yourActionListener[/B]);
    Hast du denn einen ActionListener mit dem Namen yourActionListener? Falls nein, solltest du das vielleicht ändern...

    *grüssle*
    MeinerEiner
     

  7. #7
    newangel85 newangel85 ist offline Mitglied
    Registriert seit
    Mar 2007
    Beiträge
    16
    ok aber was schreib ich rein?

    this? oder new actionlistener?
    hab keine ahnung....


    hab noch ein fehler in der Zeile

    jList.addMouseListener(new MouseAdapter()

    zeigt mir das identifier expectet..

    danke für die hilfe
     

  8. #8
    MeinerEiner_80 Tutorials.de Gastzugang
    Zitat Zitat von newangel85 Beitrag anzeigen
    ok aber was schreib ich rein?

    this? oder new actionlistener?
    hab keine ahnung....
    Du schreibst da das Objekt rein, welches das Interface ActionListener implementiert und darauf reagieren soll, wenn du auf das PopupMenu klickst..
    Wenn du nicht verstehst, was ich da eben geschrieben haben, behaupte ich mal, das dir noch ein paar Grundlagen fehlen. Dann solltest du mal da schauen:
    http://www.galileocomputing.de/openb...19bbc3d06f6855

    hab noch ein fehler in der Zeile


    jList.addMouseListener(new MouseAdapter()

    zeigt mir das identifier expectet..
    Der Code funktioniert bei mir einwandfrei. jList ist ein gültiges Objekt bei dir?
    Ansonsten zeig mal den kompletten Code

    *grüssle*
    MeinerEiner
     

  9. #9
    Avatar von zerix
    zerix zerix ist offline Hausmeister
    tutorials.de Moderator
    Registriert seit
    May 2005
    Beiträge
    4.335
    Zu so grundlegenden Fragen wie vorhin mit dem ActionListener, schau mal in den Link rein den ich gepostet hab. Das wird dir bei den meisten Sachen helfen.

    MFG

    zEriX
     
    Es ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)

  10. #10
    newangel85 newangel85 ist offline Mitglied
    Registriert seit
    Mar 2007
    Beiträge
    16
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    
    import com.gevas.config.AppGlobals;
    import com.gevas.iniconfig.controller.IniConfigController;
    import com.gevas.iniconfig.model.IniFile;
    import java.awt.Toolkit;
    import java.util.ArrayList;
    import javax.swing.DefaultListModel;
    import javax.swing.ImageIcon;
    import javax.swing.JOptionPane;
     
    /**
     *
     * @author  Ritter
     */
    public class JF_AppIniConfigurator extends javax.swing.JFrame
    {
      
      private JD_AddConfig m_AddConfig = new JD_AddConfig(this,true);
      
      
      public JF_AppIniConfigurator()
      {
        initComponents();
        initComponentsExtra();
      }
      
      private void initComponentsExtra()
      {
        this.setTitle("AdminTool");
        this.setSize(550, 450);
        this.validate();
        AppGlobals.putInSchema("GUI", "Frame", this);
      }
      
      public void initData()
      {
        logoGevas();
        zentriertePosition();
        refresh();
      }
      
      //Firmenlogo wird eingfügt
      private void logoGevas()
      {
        jl_logo.setIcon(new ImageIcon("D:\\Projekte\\IHK\\AdminTool\\logo\\logo.JPG"));
        jl_logo.validate();
        jl_logo.repaint();
      }
      
      //zentriert den Frame
      private void zentriertePosition()
      {
        int  screen_w =  Toolkit.getDefaultToolkit().getScreenSize().width;
        int screen_h  = Toolkit.getDefaultToolkit().getScreenSize().height;
        int frame_w   = this.getWidth();
        int frame_h   = this.getHeight();
        
        int x = (screen_w - frame_w)/2;
        int y = (screen_h - frame_h)/2;
        
        setLocation(x,y);
      }
      
      /**
       * Füllt die Liste der GUI
       */
      private void addListFileName()
      {
        DefaultListModel m_listModel = new DefaultListModel();
        jList.setModel(m_listModel);
        ArrayList<IniFile> iniFileList = IniConfigController.getInstance().loadIniFiles();
        if(iniFileList.size()==0)
        {
          JOptionPane.showMessageDialog(this, "Liste ist leer, da keine IniFiles vorhanden sind", "Leere Liste", JOptionPane.INFORMATION_MESSAGE);
        }
        else
        {
          for(int i=0;i< iniFileList.size();i++)
          {
            IniFile iniFile = iniFileList.get(i);
            m_listModel.addElement(iniFile);
          }
        }
      }
      
      public void refresh()
      {
        addListFileName();
      }
      
      private void saveList()
      {
        ArrayList<IniFile> iniFileList  = new ArrayList<IniFile>();
        DefaultListModel listModel = (DefaultListModel)jList.getModel();
        for(int i=0; i<listModel.size(); i++)
        {
          IniFile file = (IniFile)listModel.getElementAt(i);
          String pfad = file.getPfad();
          String name = file.getName();
          iniFileList.add(new IniFile(name,pfad));
        }
        IniConfigController.getInstance().setIniFile(iniFileList);
      }
     
      //hier zeigt er ein Fehler an
     
      [U]jList.addMouseListener(new MouseAdapter()[/U]  {
        public void mouseReleased(MouseEvent evt)
        {
          if (evt.isPopupTrigger())
          {
            showMenu(evt);
          }
        }
      });
      public void showMenu(MouseEvent evt)
      {
        JPopupMenu jKontext = new JPopupMenu();
        JMenuItem jInfo = new JMenuItem(jList.getSelectedValue().toString());
        jInfo.addActionListener(yourActionListener); ==> element was das ereignis auslöst?
        jKontext.add(jInfo);
        jKontext.show(jList, evt.getX(), evt.getY());
      }
     

  11. #11
    MeinerEiner_80 Tutorials.de Gastzugang
    Bisserele nachdenken und net nur blind kopieren wäre fein..
    Die Anweisungen müssen natürlich in ner Methode verpackt werden

    *grüssle*
    MeinerEiner
     

  12. #12
    newangel85 newangel85 ist offline Mitglied
    Registriert seit
    Mar 2007
    Beiträge
    16
    Tut mir leid aber das hatte ich ja wollte es noch nachträglich einfügen aber irgend wie hat es wohl nicht geklappt.
    Jetzt muß ich nur noch ein actionlistener hinzufügen..aber da hab ich mein Probleme.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    
    public class JF_AppIniConfigurator extends javax.swing.JFrame
    {
      
      private JD_AddConfig m_AddConfig = new JD_AddConfig(this,true);
      
      
      public JF_AppIniConfigurator()
      {
        initComponents();
        initComponentsExtra();
      }
      
      private void initComponentsExtra()
      {
        this.setTitle("AdminTool");
        this.setSize(550, 450);
        this.validate();
        AppGlobals.putInSchema("GUI", "Frame", this);
      }
      
      public void initData()
      {
        logoGevas();
        zentriertePosition();
        refresh();
      }
      
      //Firmenlogo wird eingfügt
      private void logoGevas()
      {
        jl_logo.setIcon(new ImageIcon("D:\\Projekte\\IHK\\AdminTool\\logo\\logo.JPG"));
        jl_logo.validate();
        jl_logo.repaint();
      }
      
      //zentriert den Frame
      private void zentriertePosition()
      {
        int  screen_w =  Toolkit.getDefaultToolkit().getScreenSize().width;
        int screen_h  = Toolkit.getDefaultToolkit().getScreenSize().height;
        int frame_w   = this.getWidth();
        int frame_h   = this.getHeight();
        
        int x = (screen_w - frame_w)/2;
        int y = (screen_h - frame_h)/2;
        
        setLocation(x,y);
      }
      
      /**
       * Füllt die Liste der GUI
       */
      private void addListFileName()
      {
        DefaultListModel m_listModel = new DefaultListModel();
        jList.setModel(m_listModel);
        ArrayList<IniFile> iniFileList = IniConfigController.getInstance().loadIniFiles();
        if(iniFileList.size()==0)
        {
          JOptionPane.showMessageDialog(this, "Liste ist leer, da keine IniFiles vorhanden sind", "Leere Liste", JOptionPane.INFORMATION_MESSAGE);
        }
        else
        {
          for(int i=0;i< iniFileList.size();i++)
          {
            IniFile iniFile = iniFileList.get(i);
            m_listModel.addElement(iniFile);
          }
        }
      }
      
      public void refresh()
      {
        addListFileName();
      }
      
      private void saveList()
      {
        ArrayList<IniFile> iniFileList  = new ArrayList<IniFile>();
        DefaultListModel listModel = (DefaultListModel)jList.getModel();
        for(int i=0; i<listModel.size(); i++)
        {
          IniFile file = (IniFile)listModel.getElementAt(i);
          String pfad = file.getPfad();
          String name = file.getName();
          iniFileList.add(new IniFile(name,pfad));
        }
        IniConfigController.getInstance().setIniFile(iniFileList);
      }
      
      public void getklick()
      {
        jList.addMouseListener(new MouseAdapter()
        {
          public void mouseReleased(MouseEvent evt)
          {
            if (evt.isPopupTrigger())
            {
              showMenu(evt);
            }
          }
        });
      }
        public void showMenu(MouseEvent evt)
        {
          JPopupMenu jKontext = new JPopupMenu();
          JMenuItem jInfo = new JMenuItem(jList.getSelectedValue().toString());
          jInfo.addActionListener([COLOR="Red"]..........?[/COLOR]);
          jKontext.add(jInfo);
          jKontext.show(jList, evt.getX(), evt.getY());
        }
    RELAX bedankt sich. 

  13. #13
    Avatar von zerix
    zerix zerix ist offline Hausmeister
    tutorials.de Moderator
    Registriert seit
    May 2005
    Beiträge
    4.335
    Das mit dem ActionListener ist wirklich simple. Du hättest nur mal google bemühen müssen. Ich hab es mal getan. Hab ActionListener bei google gesucht und nach nicht einmal 10 Sekunden hatte ich ein gutes Beispiel.
    Ich hab dir auch schon gesagt, dass du nur im Link nachschauen musst, den ich gepostet hab, da hat es ca 15 Sekunden gedauert, bis ich was gefunden hab und ich bin über den Index gegangen. Damit du dir die Mühe nicht machen musst hab ich dir mal bei Links gepostet.

    http://www.galileocomputing.de/openb....htm#Xxx999927
    http://www.mrunix.de/forums/archive/...p/t-42313.html


    Also ich denke die 25 Sekunden hättest du investieren können, oder nicht?

    MFG

    zEriX
    RELAX bedankt sich. 
    Es ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)

  14. #14
    newangel85 newangel85 ist offline Mitglied
    Registriert seit
    Mar 2007
    Beiträge
    16
    Hab mir jetzt alles durchgelesen und so wie ich das verstanden habe wird ein ActionListener mit der Methode addActionListener() an die Objekte angeheftet, die Aktionen auslösen können.
    In mein Fall ist das ein element aus meiner JList.

    ich hätte das so gedacht:

    jInfo.addActionListener(jList.getSelectedValue()); ==> aber das ist wohl falsch.
    Geändert von newangel85 (20.07.07 um 11:50 Uhr)
     

  15. #15
    RELAX RELAX ist offline Mitglied
    Registriert seit
    Jan 2011
    Beiträge
    12
    Das Thema ist zwar alt aber ich schreib hier mal ne Lösung für dein Problem rein.
    Also: Ein ActionListener ist eine "methode" (mehr oder weniger) die bei einer Aktion ausgeführt wird.
    Versuchs mal damit:
    Code java:
    1
    
    public class JF_AppIniConfigurator extends javax.swing.JFrame implements ActionListener

    Falls du Eclipse benutzt (was eigentlich der beste Editor ist) sagt er dir dass Du vergessen hast eine Methode zu implementieren.
    Diese Methode ist die die das Interface ActionListener vorschreibt.
    Das sollte folgende sein:

    Code java:
    1
    2
    3
    
    public void actionPerformed(ActionEvent e) {
    //dein code der bei aktion ausgeführt werden soll
    }

    In diesem Fall Funktioniert dann
    Code java:
    1
    2
    3
    
    GUIitem.addActionListener(this); 
    //oder
    GUIitem.addActionListener(JF_AppIniConfigurator);
    Geändert von RELAX (21.08.11 um 18:06 Uhr)
     

Ähnliche Themen

  1. Wie erzeuge ich diesen Texteffekt?
    Von flachrate im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 1
    Letzter Beitrag: 09.02.10, 17:34
  2. Wie erzeuge ich Glanz?
    Von pelemoko im Forum Cinema 4D
    Antworten: 7
    Letzter Beitrag: 13.05.08, 18:34
  3. Wie erzeuge ich den Effekt wie bei einem Hologramm
    Von ElGreco93 im Forum Cinema 4D
    Antworten: 4
    Letzter Beitrag: 27.10.07, 12:50
  4. Wie erzeuge ich variable Variablennamen?
    Von Ravebaby im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 15.03.07, 10:22
  5. Antworten: 14
    Letzter Beitrag: 23.01.05, 17:47