PopupMenu; Welches Menü war's denn nun?

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Hallo zusammen,

ich habe zwei Textfelder. Rechter Mausklick auf die Textfelder lässt ein Menü aufpoppen. Die Menüeinträge rekrutieren sich aus Textdateien. Jedem Textfeld ist demnach eine Datei zugeordnet.:

Code:
    private void buildPopUp(File f, MouseEvent evt) {
       try {
          String zeile;
          BufferedReader br = new BufferedReader(new FileReader(f));
          JPopupMenu popup = new JPopupMenu();
          JMenuItem mi = new JMenuItem();
          while ((zeile = br.readLine()) != null) {
             mi = new JMenuItem(zeile);
             mi.addActionListener(this);
             popup.add(mi);
          }
          br.close();
          popup.show(evt.getComponent(),evt.getX(),evt.getY());
       }
   }


Funzt ganz prima. Nun kann ich mit



Code:
    public void actionPerformed( ActionEvent evt ) {
              System.out.println(evt.getActionCommand());
   }

zwar rauskriegen, welchen Text der angeklickte Menüpunkt repräsentiert, leider weiß ich aber nicht, welchem Textfeld das Menü zugeordnet ist. Ich hoffe, daß war einigermaßen verständlich.

THX für jeden Tip
 

foobar

Top Contributor
Du mußt jedem Menuitem einen eindeutigen Actioncommand zuweisen:
Code:
private void buildPopUp(File f, MouseEvent evt, String actionCommand) 
	{
		   try 
		   {
			  String zeile;
			  BufferedReader br = new BufferedReader(new FileReader(f));
			  JPopupMenu popup = new JPopupMenu();
			  JMenuItem mi = new JMenuItem();
			  while ((zeile = br.readLine()) != null) 
			  {
				 mi = new JMenuItem(zeile);
				 mi.addActionListener(this);
				 mi.setActionCommand( actionCommand  );
				 popup.add(mi);
			  }
			  br.close();
			  popup.show(evt.getComponent(),evt.getX(),evt.getY());
		   }
	}
	   
	public void actionPerformed( ActionEvent evt ) 
	{				 
		String s = evt.getActionCommand();
		if (s.equals("cmd_txt_1"))
		{	
			System.out.println("Textfeld 1");
		}
		else if (s.equals("cmd_txt_2"))
		{	
			System.out.println("Textfeld 2");
		}
	 }
 
G

Gast

Gast
Das ist nicht schlecht. Jetzt weiß ich zwar, welches Menü gemeint ist bzw. welchem Textfeld es zuzuordnen ist, aber wie bekomme ich heraus, welcher Eintrag angeklickt wurde. Da die Einträge aus Zeilen einer Textdatei geladen werden, weiß ich beim Erstellen des Menüs nicht, wie die Einträge lauten. Nach dem expliziten Zuweisen des ActionCommand ist das so nicht mehr möglich, da ich ActionCommand jetzt nehme, um festzustellen welches Menü das Event ausgelöst hat ???:L ???:L[/b]
 

foobar

Top Contributor
Was genau ist denn das Ziel des ganzen? Was für Einträge stehen in der Textdatei? Und was soll passieren wenn ein JMenuItem angeklickt wurde?
 
B

Beni

Gast
Alles in den Action-String zu stecken scheint nicht zu gehen. Erstell doch eine Unterklasse von JPopupMenu und speichere dortdrin alle wichtigen Infos:

Code:
public class TextMenu extends JPopupMenu{
  private JTextField textField;
  private int informationBlupp;
  private String argumentSowieso;
  ...
}

Dann musst du in der actionPerformed nur noch wissen, welches Menu offen ist (irgendwo eine Variable anlegen...), und kannst es all die Infos abfragen.

Code:
public void actionPerformed( ActionEvent e ){
  TextMenu menu = ... // das wurde in irgendeiner Variable gespeicher
  String a = menu.getArgumentSowieso();
  ...
}
 
G

Gast

Gast
foobar hat gesagt.:
Was genau ist denn das Ziel des ganzen? Was für Einträge stehen in der Textdatei? Und was soll passieren wenn ein JMenuItem angeklickt wurde?

Die Einträge des PopupMenüs enthalten quasi Textbausteine. Bei Klick auf ein Item soll der entsprechende Baustein in das entsprechende Textfeld übernommen werden.
 
G

Guest

Gast
Beni hat gesagt.:
(irgendwo eine Variable anlegen...), und kannst es all die Infos abfragen

Das ist zwar kein schöner Programmierstil, aber es scheint mir eine sehr pragmatische Lösung. Zumindest kann ich dann mit getActionCommand ganz easy den Text des Menüeintrags abfragen und an das Textfeld weiterleiten.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Jlist + Popupmenu Java Basics - Anfänger-Themen 10
E PopupMenu öffnet nicht so wie ich möchte Java Basics - Anfänger-Themen 2
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
B String - Wörter finden, welches Punkt und entsprechender Pre / Suffix hat? Java Basics - Anfänger-Themen 30
B Welches Lernmaterial? Java Basics - Anfänger-Themen 5
F Methoden Bitte Helft mir meinen Fehler zu finden. Möchte in diesem Bankenprogramm durch die Konsoleneingabe auswählen welches Konto reduziert und welches erhö Java Basics - Anfänger-Themen 17
R Zugriff auf den Index eines Arrays, welches ein Objekt ist. Java Basics - Anfänger-Themen 4
M Welches Framework für kleine WebApp nutzen? Java Basics - Anfänger-Themen 6
C LMC laufen kriegen, welches Java brauche ich ? Java Basics - Anfänger-Themen 5
T Welches Java? Java Basics - Anfänger-Themen 5
F HashMap oder welches Array? Java Basics - Anfänger-Themen 4
M Panel erstellen, welches ein Control erhält. Ausgabe soll über einen Stream erfolgen. Java Basics - Anfänger-Themen 0
T Methoden Welches Objekt ruft Methode auf? Java Basics - Anfänger-Themen 6
IngoF Welches Event kommt wann? Java Basics - Anfänger-Themen 8
I Programm, welches eine Textzeile einliest und alle darin enthaltenen Buchstaben umwandelt Java Basics - Anfänger-Themen 3
D Erste Schritte Welches Framework passt zu mir ? Java Basics - Anfänger-Themen 1
C Welches Format gibt Java aus? Java Basics - Anfänger-Themen 5
I Suche Component welches Map ähnelt Java Basics - Anfänger-Themen 11
J Welches Java-Videotutorial für Anfänger empfehlenswert? Java Basics - Anfänger-Themen 7
E Objekt bekommen, welches die Methode aufruft? Java Basics - Anfänger-Themen 15
J button.addActionListener(this); - Welches this ist gemeint? Java Basics - Anfänger-Themen 7
P Layout Manager - Welches Layout für Memory? Java Basics - Anfänger-Themen 7
F welches Layout für JButton-Liste verwenden Java Basics - Anfänger-Themen 6
S Vererbung/Herausfinden welches Objekt von welcher Klasse Java Basics - Anfänger-Themen 4
W welches Paket für welches Aufgabe nutzen Java Basics - Anfänger-Themen 3
R Welches Design pattern Java Basics - Anfänger-Themen 10
M Rausfinden welches Objekt ein anderes Objekt erzeugt hat?! Java Basics - Anfänger-Themen 3
H Prüfen welches JTextfield ausgewählt/selektiert ist? Java Basics - Anfänger-Themen 7
L auslesen einer Variablen eines Objekt welches "Eigentum" eines Objektes der selben Klasse ist. Java Basics - Anfänger-Themen 12
N Welches Layout soll ich verwenden? Java Basics - Anfänger-Themen 3
C welches programm?? Java Basics - Anfänger-Themen 22
K Welches Spiel programmieren? Anfänger Java Basics - Anfänger-Themen 28
R Welches Tool soll ich benutzen? Java Basics - Anfänger-Themen 19
G gutes Reporting Tool welches mit Java zusammenarbeitet Java Basics - Anfänger-Themen 8
M Welches Betriebsystem ist für Java am geeignetesten Java Basics - Anfänger-Themen 135
-horn- Wie am Einfachsten mit Config-Datei umgehen. Welches Format? Java Basics - Anfänger-Themen 6
L welches tool NetBeans 6.0.1 oder Eclipse ? Java Basics - Anfänger-Themen 11
P Welches Buch ist für Einsteiger(fast) ohne Vorwissen passend Java Basics - Anfänger-Themen 7
N Welches Array bietet sich an? Java Basics - Anfänger-Themen 4
B Browsergame - welches Framework? Java Basics - Anfänger-Themen 2
A Welches GUI nutze ich am Besten? Java Basics - Anfänger-Themen 7
G Ein Java Programm welches ein lineares Gleichungssystem löst Java Basics - Anfänger-Themen 16
T Methode zum überprüfen welches JPanel offen ist Java Basics - Anfänger-Themen 3
B Applet, welches Maximum eines Array bestimmt Java Basics - Anfänger-Themen 2
U Welches Layout? Java Basics - Anfänger-Themen 6
N SAX, StAX, JDOM oder DOM , ab wann welches für XML Java Basics - Anfänger-Themen 14
L [Web/Servlets] welches Framework verwenden? Java Basics - Anfänger-Themen 10
G Welches Java Buch kaufen? Java Basics - Anfänger-Themen 7
R Welches inferface und somit welche IP benutzt meine JVM? Java Basics - Anfänger-Themen 2
E In welches Verzeichnis müssen selbsterstellte Klassen ? Java Basics - Anfänger-Themen 6
M Welches Java downloaden? Java Basics - Anfänger-Themen 2
L JFrame öffnet 2tes JFrame, welches Daten vom 1sten braucht. Java Basics - Anfänger-Themen 21
J Java Applets schreiben welches JDK wählen? Java Basics - Anfänger-Themen 5
megachucky Swing - suche fenster welches nicht schließbar ist Java Basics - Anfänger-Themen 3
B welches format hat java.sql.date? Java Basics - Anfänger-Themen 9
Y Timeserver im Internet, welches Protokoll, wie zugreifen Java Basics - Anfänger-Themen 6
J Wert in Dropdown Menü kursiv schrieben Java Basics - Anfänger-Themen 19
M Von einem Menü Methode aus anderer Klasse ausführen, die errechnete Werte in Datei schreibt. Java Basics - Anfänger-Themen 8
H Befehle in einem Menü aktivieren Java Basics - Anfänger-Themen 1
O Popoup Menü im JTable richtig anzeigen Java Basics - Anfänger-Themen 6
J Zusätzliches Menü in einem Terminal erstellen Java Basics - Anfänger-Themen 0
J Panel und Menü Java Basics - Anfänger-Themen 6
J Java Anwendungs-Menü Java Basics - Anfänger-Themen 8
S Hallo und Fragen zu Arbeitsverzeichnis und Menü Java Basics - Anfänger-Themen 8
J Menü mit mehreren Bildern Java Basics - Anfänger-Themen 5
R Switch: Nach durchlaufen des Case wieder zum Menü Java Basics - Anfänger-Themen 3
K Erste Schritte Wie mache ich weiter? (Spiel-Menü) Java Basics - Anfänger-Themen 9
G menü in simulation Java Basics - Anfänger-Themen 3
K Drop-down Menü (swing) Java Basics - Anfänger-Themen 4
1 Menü mit Buttons erstellen Java Basics - Anfänger-Themen 10
M Login-Menü Java Basics - Anfänger-Themen 7
MisterSeven Netbeans - Dropdown Menü erstellen? Java Basics - Anfänger-Themen 4
A Menü Java Basics - Anfänger-Themen 7
C kleines Menü erzeugen und anzeigen Java Basics - Anfänger-Themen 11
M Problem beim Ereignishandling mit Menü Java Basics - Anfänger-Themen 2
TheKing Java-Menü Machen Java Basics - Anfänger-Themen 7
P Baum-Menü in Java Java Basics - Anfänger-Themen 5
J Java-Menü Machen Java Basics - Anfänger-Themen 7
Antoras Tab über Menü ansteuern Java Basics - Anfänger-Themen 2
G Rechtsklick Menü? Java Basics - Anfänger-Themen 2
G Strich im Menü Java Basics - Anfänger-Themen 2
D JApplet menü Java Basics - Anfänger-Themen 8
A Menü aktivieren Java Basics - Anfänger-Themen 5
N Von einem Menü in Untermenü Java Basics - Anfänger-Themen 3
M Menü Programmieren Java Basics - Anfänger-Themen 2
T Wie kann ich andere Programme in Java über ein Menü öffnen? Java Basics - Anfänger-Themen 12
M Einfaches Menü erstellen Java Basics - Anfänger-Themen 106
M Dialog aus Menü aufrufen Java Basics - Anfänger-Themen 13
T Rechsklick menü erstellen Java Basics - Anfänger-Themen 2
J Menü-strip beenden-knopf mit Ende des Programms belegen ? Java Basics - Anfänger-Themen 2
D Menü soll immer da bleiben - Frames sollen wechseln Java Basics - Anfänger-Themen 3
S RadioButtons im Menü Java Basics - Anfänger-Themen 5
M statt drop down menü - buttons Java Basics - Anfänger-Themen 5
S Menü addActionListener Java Basics - Anfänger-Themen 11
A Java-Konsolen Menü Java Basics - Anfänger-Themen 6
A Aus dem menü heraus andere Felder bearbeiten Java Basics - Anfänger-Themen 2
C Swing-Fenster mit Menü- und Toolbar Java Basics - Anfänger-Themen 3
F Menü erstellen Java Basics - Anfänger-Themen 14
B Was mach ich falsch mit einem Menü in Swing Java Basics - Anfänger-Themen 2
T Problem bei Menü Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben