Actions in JTable aufrufen

L

lowskilla

Hallo,

ich habe mir eine Action geschrieben, funktioniert in meinem JMenü und in meinem JPopupmenü, da man hier ja bei den MenüItems eine Action übergeben kann.

Jetzt stehe ich vor dem Problem, dass genau die selbe Action ausgeführt werden soll, wenn ich auf meine JTable einen Doppelklick mache. Auf der JTable befindet sich ein Mouselistener. Doppelklicks funktionieren, ich kann halt keine Action in meiner MousePressed() Methode ausführen.

Hat jemand einen Rat wie das möglich ist?
 
Moin,

wie schaut denn der Code dieser "Action" aus? Ist das ein ActionListener?
Ich würde jetzt mal ganz schlicht vorschlagen, dass Du den Methodenrumpf aus eben dieser Action auslagerst und als eigene Methode definierst.

Diese Methode ließe sich ja dann in dem Listener für das Menü als auf für den MouseListener aufrufen.

Gruß,
Xan
 
Hallo,

erstmal danke für die Antwort. Hier mal eine BeispielAction, da der genaue Code für die ActionPerformed wahrscheinlich zu lang wäre:

Java:
public class MyAction extends AbstractAction
{
	public MyAction(final String name, final Icon icon)
	{
		putValue(Action.NAME, name);
		putValue(Action.SMALL_ICON, icon);
	}

	public MyAction(final String name)
	{
		this(name, null);
	}

	public void actionPerformed(final ActionEvent e)
	{
           //Das hier ist nur ein BeispielCode
             System.exit(0)
	}
}

So verwende ich eine Action im Menü und im Popupmenü. Falls das beim Doppelklick auf die Tabelle nicht funktionieren sollte, müsste ich die paar Zeilen Code in der ActionPerformed wohl doppelt implementieren, was jedoch eher bad practise ist.

So wie du vorgeschlagen hast, Xandro, ist es bisher implementiert, aber eher als Notlösung, ich wollte das ganze mit Actions lösen, wie hier:

Java:
JMenuItem testMenuItem = new JMenuItem(new MyAction("TestAction"));

Wahrscheinlich ist die Lösung eher trivial, aber irgendwie steh ich (immer noch) auf dem Schlauch.


Edit: Ist es eigentlich möglich, dass diese BeispielAction hier auch aufgerufen wird, wenn ich mein Fenster mit dem Schließen Button des JFrames (bei Windows das rote X rechts oben in der Fensterleiste) beenden will?
 
Zuletzt bearbeitet von einem Moderator:
Zurück