ActionEvents selbst erzeugen

guni

Bekanntes Mitglied
Hallo,

wahrscheinlich ist meine Frage eher eine Anängerfrage; hab aber unter google nichts passendes gefunden.
Also:
ich hab eine Klasse GUI extends JFrame implements ActionListener.
in meinem Fenster existiert ein Button, der eine Methode aus einer anderen Klasse startet.
Nun möchte ich, wenn diese andere Klasse fertig ist eine "Fertig"-Messagebox ausgeben.
Wie sag ich meiner JFrame-Klasse aus der "fremden" Methode raus dass ich fertig bin.
Wollte schon ein ActionEvent erstellen:
in der "fremden" Klasse steht dann also:
Java:
ActionEvent e = new ActionEvent(this, 0, "FINISHED");
in meinem ActionListener steht dann
Java:
else if (cmd.equals("FINISHED")) { // kommt aus der Main-Klasse
				System.out.println("Hallo");
			}
... aber irgendwie geht passiert da nichts :-(
wisst ihr wie ich das umschreiben muss?!

mfg, guni
 

Foermchen82

Top Contributor
Wenn du in der ActionPerformed-Methode eine zweite aufrufst, bleibst du so lange in der Action Perfomed-Methode hängen bis die gerufenen Methode fertig ist. Es sei denn du startest den aufruf in einem Thread. Was tust du also?
 

guni

Bekanntes Mitglied
Hallo Foermchen82,

meine Klassen sehen (vereinfacht) so aus:

Main.java:
Java:
public class Main 
{
	public static void main(String[] args)
	{
		javax.swing.SwingUtilities.invokeLater(
			new Runnable() {
	            public void run() {
	                new GUIConf();
	            }
	        });
	}

	public Main() throws Exception
	{
		// hier werden ein paar Threads gestartet

		// nachdem das Programm durchgelaufen ist:
		ActionEvent e = new ActionEvent(this, 0, "FINISHED");
	}
}

GUIConf.java:
Java:
public class GUIConf extends JFrame implements ActionListener
{
	public GUIConf()
	{
		super();
		initialize();
	}
	
	private void initialize()
	{
		this.setTitle("TITEL");
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setSize(500, 480);
		this.setContentPane(getJContentPane());
		this.pack();
		this.setVisible(true);
		run = Runtime.getRuntime();
	}
	
	private JPanel getJContentPane() 
	{
		// hier wird die Content Pane zusammengesetzt
		return jContentPane;
	}
	
	@Override
	public void actionPerformed(ActionEvent e) 
	{
		try {
			String cmd = e.getActionCommand();
			if (cmd.equals ... {
				// hier werden die Commands abgefragt
			} else if (cmd.equals("FINISHED")) { // kommt aus der Main-Klasse
				System.out.println("Hallo");
			}
		} catch (IOException err) {
			err.printStackTrace();
		}
	}
}

so ... jetzt will ich irgendwie von der Main-Methode wieder in die ActionPerformed zurück :-(

lg, guni
 

Foermchen82

Top Contributor
wieso implemetiert dein frame das ActionListenerInterface? ich denke die Action wird vom JButton ausgelöst?. Ansonsten ist es so wie ich es oben beschrieben habe.
 

KrokoDiehl

Top Contributor
Ah, ich glaube hier liegt ein größerer Verständnisfehler vor. Es genügt nicht, irgendwo ein
Code:
new ActionEvent()
zu machen, um ein Ereignis auszulösen. Überlicherweise werden ActionListener an Buttons gehängt, was dann etwa so aussieht:
Java:
// GUI
JButton myButton = new JButton("Klick mich");
myButton.addActionListener(this); // oder anderes Objekt, das von ActionListener erbt

// im ActionListener:
public void actionPerformed(ActionEvent event)
{
    // ggfs prüfen woher das Event kommt mit event.getSource() oder event.getActionCommand()
    // mache entsprechend etwas
}

Das Auslösen des ActionEvents passiert irgendwo im JButton-Code. Dort werden alle ActionListener, die an
Code:
myButton
gehängt wurde, über den Klick benachrichtigt. Überlicherweise heißen solche Methoden
Code:
fireBLABLA()
, wobei "BLABLA" für das jeweilige Ereignis steht (z.B.
Code:
fireActionPerformed()
).

In deinem Fall ist mir nicht klar, was du genau erreichen willst. Du hast einen Button, wenn du den klickst, wird etwas gemacht, und wenn das fertig ist, soll eine Meldung kommen?
 

guni

Bekanntes Mitglied
In deinem Fall ist mir nicht klar, was du genau erreichen willst. Du hast einen Button, wenn du den klickst, wird etwas gemacht, und wenn das fertig ist, soll eine Meldung kommen?

genau! aber woher weiß ich wenn ich fertig bin?!
in meiner Main() werden mehrere Threads gestartet.
Und wie kann meine Main bekannt geben, dass sie fertig ist?!

mfg, guni
 

Michael...

Top Contributor
Wenn's nur darum geht ein Meldungsfenster anzuzeigen dann kann das ja auch die Klasse tun, die irgendwelche Prozesse fertig abgearbeitet hat.
Ansonsten könntest Du Dir in der Klasse Main eine Referenz auf die erzeugte GUI-Klasse in einer Variablen speichern und die GUI Klasse über diese Referenz ansprechen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Swing JButtons und die ActionEvents AWT, Swing, JavaFX & SWT 2
D Verschiedene ActionEvents für ein JButton-Array AWT, Swing, JavaFX & SWT 2
M Problem mit ActionEvents und Daten AWT, Swing, JavaFX & SWT 2
S Anzahl ActionEvents (Strings in eine ArrayList einfügen) AWT, Swing, JavaFX & SWT 4
J JOptionPane ruft sich selbst immer wieder neu auf AWT, Swing, JavaFX & SWT 3
T Swing Hilfe - Selbst Informatik Lehrer konnte mir nicht weiter Helfen AWT, Swing, JavaFX & SWT 2
ToBJo JavaFX TreeView zerstört sich selbst AWT, Swing, JavaFX & SWT 1
N selbst definierter JButton AWT, Swing, JavaFX & SWT 13
V Swing JTree - Umbenennen selbst handlen. AWT, Swing, JavaFX & SWT 2
F JPanel aus sich selbst heraus ersetzen. AWT, Swing, JavaFX & SWT 9
2 Einfaches XY Diagramm selbst zeichnen? AWT, Swing, JavaFX & SWT 6
B Swing ContentPane resettet sich selbst AWT, Swing, JavaFX & SWT 2
data89 Komponenten verschwinden von JPanel, wenn ich den HG selbst male - Hilfeeee AWT, Swing, JavaFX & SWT 16
D Swing Button selbst gestalten AWT, Swing, JavaFX & SWT 4
A Gui Komponenten werden nicht von selbst aktualisiert! AWT, Swing, JavaFX & SWT 2
A Eigene, sich selbst zeichnende Component AWT, Swing, JavaFX & SWT 5
B ToolTip verändern / selbst gestalten AWT, Swing, JavaFX & SWT 3
B TreeViewer für das Dateisystem, der sich selbst aktualisiert AWT, Swing, JavaFX & SWT 8
F Größenänderung mittels Maus - selbst implementieren? AWT, Swing, JavaFX & SWT 3
V Buttons selbst machen? AWT, Swing, JavaFX & SWT 3
M polygone wird von selbst gezeichnet AWT, Swing, JavaFX & SWT 7
S SWT: Eclipse-artige Dialoge selbst bauen AWT, Swing, JavaFX & SWT 2
I TIFF im CMYK-Farbmodell + mit dpi-Auflösung im Header erzeugen - wie? AWT, Swing, JavaFX & SWT 0
Monokuma Blöcke erzeugen (JavaFX) AWT, Swing, JavaFX & SWT 1
B Java FX In control.TreeCell-Implementierung Binding erzeugen AWT, Swing, JavaFX & SWT 0
Q-bert Dynamische Komponente erzeugen AWT, Swing, JavaFX & SWT 6
I Schöne Heatmap erzeugen AWT, Swing, JavaFX & SWT 10
K Color-Objekt erzeugen in CMYK AWT, Swing, JavaFX & SWT 2
MaxG. Swing Dynamisch grafische Objekte erzeugen AWT, Swing, JavaFX & SWT 12
kilopack15 JLabels im Array erzeugen AWT, Swing, JavaFX & SWT 2
J JavaFX Buttons mit Array erzeugen AWT, Swing, JavaFX & SWT 1
B JavaFX Wie Treeview aus xml erzeugen AWT, Swing, JavaFX & SWT 11
S AWT JTextFields durch Array im JMenu erzeugen? AWT, Swing, JavaFX & SWT 19
M In JFreeChart Geraden erzeugen AWT, Swing, JavaFX & SWT 11
D Mit Klick auf Button ein neues Fenster erzeugen AWT, Swing, JavaFX & SWT 11
GreyFox JLabel in laufender Anwendung erzeugen AWT, Swing, JavaFX & SWT 6
K JavaFX Erzeugen dynamischer Layouts in fxml AWT, Swing, JavaFX & SWT 3
A Swing Zwei Klassen mit Textfeld Eingaben vergleichen und Ausgabe erzeugen AWT, Swing, JavaFX & SWT 10
B Knoten, Kanten erzeugen AWT, Swing, JavaFX & SWT 4
H Quadrate dnamisch erzeugen und beliebig füllen AWT, Swing, JavaFX & SWT 7
P TableViewerColumn dynamisch erzeugen AWT, Swing, JavaFX & SWT 3
H Swing Button Klick soll "Untermenü-Buttons" erzeugen AWT, Swing, JavaFX & SWT 2
B Kontrast in einem Bild erzeugen AWT, Swing, JavaFX & SWT 37
J Halb-modales Fenster erzeugen AWT, Swing, JavaFX & SWT 5
A Panels in JavaFX zur Laufzeit erzeugen AWT, Swing, JavaFX & SWT 5
C SWT - widget dynamisch erzeugen und anzeigen AWT, Swing, JavaFX & SWT 10
M jTable - Größe beim Erzeugen AWT, Swing, JavaFX & SWT 4
B eine .jar erzeugen AWT, Swing, JavaFX & SWT 4
K Swing: Panel in Panel erzeugen AWT, Swing, JavaFX & SWT 11
S Bild fläche erzeugen AWT, Swing, JavaFX & SWT 10
G Große dynamische ContextMenus erzeugen (Eclipse RCP) AWT, Swing, JavaFX & SWT 4
A JTree aus Pfaden erzeugen AWT, Swing, JavaFX & SWT 3
T Leerraum im Jframe erzeugen AWT, Swing, JavaFX & SWT 3
E Profilsichten speichern und dynamsich erzeugen?! AWT, Swing, JavaFX & SWT 2
G Mit Java einen Button wie z.B. im Opera 10.63 erzeugen AWT, Swing, JavaFX & SWT 3
R Möglichkeiten ein abgeleitetes Objekt zu erzeugen AWT, Swing, JavaFX & SWT 4
A Swing Dynamisch Objekte erzeugen AWT, Swing, JavaFX & SWT 3
M Jframe wie bekommt man bei den zeile einen header erzeugen AWT, Swing, JavaFX & SWT 2
X Swing Neues Fenster erzeugen AWT, Swing, JavaFX & SWT 3
E AWT RenderedImage aus BufferedImage erzeugen, um Bild abzuspeichern? AWT, Swing, JavaFX & SWT 4
D Erzeugen eines leeren Graphics-Objektes AWT, Swing, JavaFX & SWT 7
M Swing Zweidimensionales Array mit Farben erzeugen AWT, Swing, JavaFX & SWT 16
H Swing Trennlinie wie bei Menüleiste erzeugen AWT, Swing, JavaFX & SWT 2
Semox Swing JFrame extern erzeugen und in anderes JFrame einbetten AWT, Swing, JavaFX & SWT 7
D Dynamischen JTree aus Hyperlinks bzw. Anker erzeugen AWT, Swing, JavaFX & SWT 8
R JLabel und JSlider dynamisch erzeugen? AWT, Swing, JavaFX & SWT 3
O Button (ActionPerformed) soll neues JFrame erzeugen AWT, Swing, JavaFX & SWT 8
I Swing JTree aus ArrayList<File> erzeugen AWT, Swing, JavaFX & SWT 15
data89 Code-completion-window erzeugen - wie? AWT, Swing, JavaFX & SWT 2
J Swing Selbstschliessende Nachrichtenfenster erzeugen AWT, Swing, JavaFX & SWT 8
martinyyyy AWT Parameter erzeugen NullpointerException obwohl sie vorhanden sind? AWT, Swing, JavaFX & SWT 4
B Wie kann ich Greyscale Bilder aus ushort binary files erzeugen? AWT, Swing, JavaFX & SWT 8
multiholle Swing TransferHandler mit DataFlavor erzeugen AWT, Swing, JavaFX & SWT 2
H Swing jpanel in jframe erzeugen und anzeigen AWT, Swing, JavaFX & SWT 5
freakysheep mit jtree config file erzeugen AWT, Swing, JavaFX & SWT 2
E Komponenten in Event Dispatch Thread erzeugen? AWT, Swing, JavaFX & SWT 4
S JTable Daten bearbeiten und Grauwertbild erzeugen! AWT, Swing, JavaFX & SWT 4
S Nachträglich Swing-Elemente in JFrame erzeugen AWT, Swing, JavaFX & SWT 18
isowiz Leeres ImageIcon einer bes timmten Größe erzeugen AWT, Swing, JavaFX & SWT 2
S JMenu und ActionListener per Schleife erzeugen AWT, Swing, JavaFX & SWT 3
M Erzeugen von Komponenten während der Laufzeit AWT, Swing, JavaFX & SWT 6
G Felder dynamisch erzeugen! AWT, Swing, JavaFX & SWT 3
I Textfields dynamisch erzeugen AWT, Swing, JavaFX & SWT 4
J JFrame in Fenstermitte erzeugen AWT, Swing, JavaFX & SWT 16
N Threads kein neues Fenster erzeugen lassen AWT, Swing, JavaFX & SWT 4
A Grafik aus MIME-kodiertem Inhalt erzeugen AWT, Swing, JavaFX & SWT 2
G Datei-Browser - Wie solche Ansicht erzeugen? AWT, Swing, JavaFX & SWT 3
R Nicht rechteckige Komponenten erzeugen? AWT, Swing, JavaFX & SWT 7
K Erzeugen eines Jar-Files AWT, Swing, JavaFX & SWT 5
vogella Erzeugen der Hauptsicht (JFrame) AWT, Swing, JavaFX & SWT 2
M Aus Swing Oberfläche Bild erzeugen AWT, Swing, JavaFX & SWT 39
L Dynamisches Erzeugen eines Button AWT, Swing, JavaFX & SWT 2
M Abstrakte Graphics Klasse erzeugen AWT, Swing, JavaFX & SWT 2
F Komponente dynamisch erzeugen AWT, Swing, JavaFX & SWT 4
J Eigene Fehlermeldung in AWT erzeugen AWT, Swing, JavaFX & SWT 2
J Thread erzeugen AWT, Swing, JavaFX & SWT 9
M dynamischen JTree erzeugen AWT, Swing, JavaFX & SWT 4
S In einem button Panel 2 verschiedene TiteledBoarder erzeugen AWT, Swing, JavaFX & SWT 5
M ImageObserver, Bild dynamisch erzeugen und Speichern AWT, Swing, JavaFX & SWT 24
L Tabelle mit 5 spalten und 2 Zeilen erzeugen AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben