wie erzeuge ich ein Kontextmenü

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

*grüssle*
MeinerEiner
 
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:
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(..........?);
      jKontext.add(jInfo);
      jKontext.show(jList, evt.getX(), evt.getY());
    }
 
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/openbook/javainsel6/javainsel_14_005.htm#Xxx999927
http://www.mrunix.de/forums/archive/index.php/t-42313.html


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

MFG

zEriX
 
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.
 
Zuletzt bearbeitet:
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:
Java:
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:

Java:
public void actionPerformed(ActionEvent e) {
//dein code der bei aktion ausgeführt werden soll
}

In diesem Fall Funktioniert dann
Java:
GUIitem.addActionListener(this); 
//oder
GUIitem.addActionListener(JF_AppIniConfigurator);
 
Zuletzt bearbeitet:
Zurück