tut mir leid, aber ich verstehe dich nicht ganz. Warum willst du den Button klicken lassen?
Nimm für jeden Button eine eigene Actionperform- methode.
deinButton = new JButton();
deinButton.addActionListener(new java.awt.event.ActionListener() {
@Override
public void actionPerformed() {
deinButtonActionPerformed();
}
});
deinZweiterButton = new JButton();
deinZweiterButton.addActionListener(new java.awt.event.ActionListener() {
@Override
public void actionPerformed() {
deinZweiterButtonActionPerformed();
}
});
deinButtonActionPerformed und deinZweiterButtonActionPerformed heissen die Methoden, welche dann bei zB Klick aufgerufen werden. Und in einer Methode kannst du dann eine andere Methode aufrufen.
private void deinButtonActionPerformed() {
// deine erste Methode die irgendwas macht
deinZweiterButtonActionPerformed(); // hier wird die Methode des anderen Buttons aufgerufen
}
private void deinZweiterButtonActionPerformed() {
// hier wird was anderes gemacht
}
Der Overhead, welcher durch den zusätzlichen Methodenaufruf hinzukommt, ist vernachlässigbar. Außerdem ist es so etwas sauberer gegliedert und die Speichern-Aktion kann auch mit minimalem Aufwand durch Strg+S aufgerufen werden.
A l s o:
Hier hast du einen grundsätzlichen Denkfehler. Wenn man eine Methode für mehr als ein Ereigniss nutzen möchte oder muss so ist es klar diese nicht als eine Ereignissfunktion darzustellen.
Dies wiederspricht komplett der objektorientierten Programmierung.
Beide „Klick“ Methoden sollte die selbe Funktion benutzen welche einzeln in der klasse (und dort „private“) liegt.
Dann kannst du jederzeit einzelne Bedingungen zu den "Klick"Methoden hinzufügen.
zu jedem Button eine Funktion, die ausgeführt wird wenn der Button geklickt wird. Wird die Funktion für den zweiten Buttonklick ausgeführt, ruft sie die Funktion für den ersten Buttonklick auf…
ist es wirklich notwendig, die doClick-Methode des zweiten Buttons aufzurufen? Ich würde aus der actionPerformed-Methode – deren Bedeutung ja rein Swing-technisch ist – auf jeden Fall eigene „Business“-Methoden (wie etwa speichere(), fuegeHinzu(), …) aufrufen, in denen Deine Programmlogik dann weiterverarbeitet wird, damit diese nicht zu sehr an die Swing-Technologie gekoppelt ist. Dann ist es auch kein Problem, nach fuegeHinzu() direkt auch noch speichere() aufzurufen:
(Nichtsdestotrotz muss ich zugegeben, dass ich nicht weiß, warum vom buttonSpeichern.doClick() nicht wieder die actionPerformed-Methode aufgerufen werden sollte… Das sollte eigentlich genauso funktionieren.)
Ich würde das wahrscheinlich anders regeln. Weil: wenn es sich um zwei verschiedene Aktionen(!) handelt gibt es keinen Grund das ganze in einer Action abzuhandeln. Jede Action sollte für eine Aufgabe erstellt werden. So könntest du eine Methode speichern() und tuwas() erstellen. Bei deiner eigentlichen SpeichernAction rufst Du nur speichern() auf bei deinem anderen Button tuwas() und dann speichern().
Ich würde das wahrscheinlich anders regeln. Weil: wenn es sich um zwei verschiedene Aktionen(!) handelt gibt es keinen Grund das ganze in einer Action abzuhandeln. Jede Action sollte für eine Aufgabe erstellt werden. So könntest du eine Methode speichern() erstellen und tuwas() erstellen. Bei deiner eigentlichen SpeichernAction rufst Du nur speichern() auf bei deinem anderen Button tuwas() und dann speichern().