2Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
14
14
ZUGRIFFE
8925
8925
EMPFEHLEN
-
19.07.07 10:39 #1
- 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.
-
19.07.07 10:52 #2MeinerEiner_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
-
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. ;-)
-
19.07.07 10:58 #4
- Registriert seit
- Mar 2007
- Beiträge
- 16
Vielen Danke für die Hilfe, ihr seit echt Klasse
-
19.07.07 12:02 #5
- 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()); }
-
19.07.07 12:28 #6MeinerEiner_80 Tutorials.de Gastzugang
Moin!
Hast du denn einen ActionListener mit dem Namen yourActionListener? Falls nein, solltest du das vielleicht ändern...Code :1
Info.addActionListener([B]yourActionListener[/B]);
*grüssle*
MeinerEiner
-
19.07.07 12:44 #7
- 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
-
19.07.07 13:11 #8MeinerEiner_80 Tutorials.de Gastzugang
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
Der Code funktioniert bei mir einwandfrei. jList ist ein gültiges Objekt bei dir?hab noch ein fehler in der Zeile
jList.addMouseListener(new MouseAdapter()
zeigt mir das identifier expectet..
Ansonsten zeig mal den kompletten Code
*grüssle*
MeinerEiner
-
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
zEriXEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
19.07.07 14:40 #10
- 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()); }
-
19.07.07 14:53 #11MeinerEiner_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
-
20.07.07 09:21 #12
- 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()); }
-
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
zEriXEs ist schwer Allwissend zu sein. Aber ich komme damit klar. ;-)
-
20.07.07 10:50 #14
- 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)
-
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
-
Wie erzeuge ich diesen Texteffekt?
Von flachrate im Forum Videoschnitt, Videotechnik & -produktionAntworten: 1Letzter Beitrag: 09.02.10, 17:34 -
Wie erzeuge ich Glanz?
Von pelemoko im Forum Cinema 4DAntworten: 7Letzter Beitrag: 13.05.08, 18:34 -
Wie erzeuge ich den Effekt wie bei einem Hologramm
Von ElGreco93 im Forum Cinema 4DAntworten: 4Letzter Beitrag: 27.10.07, 12:50 -
Wie erzeuge ich variable Variablennamen?
Von Ravebaby im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 15.03.07, 10:22 -
Wie erzeuge ich aus einem Dateinamen-String eine Klasse ?
Von MariusMeuser im Forum JavaAntworten: 14Letzter Beitrag: 23.01.05, 17:47





Zitieren


Login





