Aktion ausführen wenn Button geklickt wird

paradox.

Aktives Mitglied
Hallo,

befasse mich gerade mit GUI´s. Möchte jetzt dass eine Aktion ausgeführt wird und sich dann ein neues Fenster öffnet, wenn der Button den ich erstellt habe geklickt wird. Kann mir da bitte jemand weiterhelfen.

Folgender Programmcode von meinem Button:
Java:
		JButton btnCsvMittelsUrl = new JButton("CSV Datei mittels URL einlesen");
		btnCsvMittelsUrl.setBounds(220, 127, 210, 60);
		contentPane.add(btnCsvMittelsUrl);

Danke schon im voraus.
Grüße
 
Zuletzt bearbeitet:

anti-held

Bekanntes Mitglied
Du musst dem Button einen ActionListener hinzufügen.

Am einfachsten funktioniert das ganze über eine annonyme Klasse:

Java:
        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e)
            {
                System.out.println("Der Button wurde geklickt");
            }
        });

Der Code innerhalb der actionPerformed Methode wird dann beim Klick ausgeführt.
Hier würde auf der Konsole [c]Der Button wurde geklickt[/c] ausgegeben
 

Sen-Mithrarin

Gesperrter Benutzer
wichtig ist das man zeitaufwändigen code innerhalb des listeners nicht im EDT lauf lassen darf sondern in einen extra thread auslagern muss ... sonst "freezed" die GUI
 

paradox.

Aktives Mitglied
Erstmal danke, aber ich komm immernoch nicht ganz zurecht..
Hier noch mal mein jetziger Code
Java:
		JButton btnDateiausgabecsvLoeschen = new JButton("Dateiausgabe.csv l\u00F6schen");
		btnDateiausgabecsvLoeschen.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
			DateienLoeschen.DateiausgabeLoeschen();
			LoeschenErfolgreich.main(null);
			}
Ne Frage zu "LoeschenErfolgreich", rufe ich hier das neue Fenster so richtig auf oder ist das eher ungeschickt?


Java:
package Projekt;

import java.awt.BorderLayout;

public class LoeschenErfolgreich extends JFrame {

	private JPanel contentPane;

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					LoeschenErfolgreich frame = new LoeschenErfolgreich();
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public LoeschenErfolgreich() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JLabel lblDateiausgabecsvWurdeErfolgreich = new JLabel("Dateiausgabe.csv wurde erfolgreich gel\u00F6scht!");
		lblDateiausgabecsvWurdeErfolgreich.setHorizontalAlignment(SwingConstants.CENTER);
		lblDateiausgabecsvWurdeErfolgreich.setBounds(0, 103, 434, 55);
		contentPane.add(lblDateiausgabecsvWurdeErfolgreich);
	}


}
 
Zuletzt bearbeitet:

paradox.

Aktives Mitglied
Erstmal danke, aber ich komm immernoch nicht ganz zurecht..
Hier noch mal mein jetziger Code
Java:
		JButton btnDateiausgabecsvLoeschen = new JButton("Dateiausgabe.csv l\u00F6schen");
		btnDateiausgabecsvLoeschen.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
			DateienLoeschen.DateiausgabeLoeschen();
			LoeschenErfolgreich.main(null);
			}

Ne Frage zu "LoeschenErfolgreich", rufe ich hier das neue Fenster so richtig auf oder ist das eher ungeschickt?

Wär echt super wenn mir jemand sagen könnte was ich an dem oberen Code-Teil besser machen kann. Scheint mir etwas ungeschickt die komplette main von der anderen Klasse aufzurufen, nur damit ein anderes Fenster angezeigt wird.
 

Sen-Mithrarin

Gesperrter Benutzer
Wär echt super wenn mir jemand sagen könnte was ich an dem oberen Code-Teil besser machen kann. Scheint mir etwas ungeschickt die komplette main von der anderen Klasse aufzurufen, nur damit ein anderes Fenster angezeigt wird.

dann mach es doch so wie es korrekt geht : neue klasse instanzieren und entsprechende methoden callen ... ist aber auch nichts anderes als main() zu callen ... nur das du halt bei deinem code die kontrolle verlierst ...

google dir mal noch n paar tutorials
 

paradox.

Aktives Mitglied
dann mach es doch so wie es korrekt geht : neue klasse instanzieren und entsprechende methoden callen ... ist aber auch nichts anderes als main() zu callen ... nur das du halt bei deinem code die kontrolle verlierst ...

google dir mal noch n paar tutorials

Quasi hab ich dann nur in meiner Hauptklasse ne main-Methode, sonst überall nicht und dann ruf ich die Methoden einfach mit Klassenname.Methodenname auf oder?
 

dcc

Aktives Mitglied
Actionlistener kannst auf 4 Arten einbauen:

1. Wie oben mit der anonymen Klasse. Eignet sich gut wenn nix kompliziertes gemacht wird.
2. Als innere Klasse, also Klasse in Klasse. Eignet sich wenn man Zugriff auf Variablen der äußeren Klasse braucht und wenn man in keiner anderen Klasse den AL braucht.
3. Als eigene Klasse (Datei). Eignet sich immer, besonders wenn der Code länger wird.
4. Die .java Datei implementiert selbst das ActionListener Interface. Wenn du den ActionListener nicht in mehren Klassen brauchst.

2 und 3 sind gleich, nur dass man das eine in der gleichen Datei hat und das andere in einer eigenen.
Bei 2 und 3 schreibst du

Java:
public class bla implements ActionListener {

}

und lässt von Eclipse den Fehler beheben (fügt die Actiopnperformed Methode ein).
Da schreibst System.out.... und gibst irgendwas aus.

Wenn du dann irgendwo den Button erstellt hast, machst einfach:
Java:
deinButton.addActionListener(new bla()); // für Punkte 2 und 3
deinButton.addActionListener(this); // für 4

this zeigt auf die Klasse in der du grade schreibst.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
Alex_99 Aktion ausführen wenn Frame disposed wurde Java Basics - Anfänger-Themen 5
I Aktion ausführen bei Enter Java Basics - Anfänger-Themen 6
B Bei Schließen von Fenster über x Aktion ausführen Java Basics - Anfänger-Themen 6
5 File->Open Dialog mit nachheriger Aktion ausführen. Java Basics - Anfänger-Themen 3
C Stack und Queue in Aktion (Bitte Hilfe für die Klausur) Java Basics - Anfänger-Themen 7
T Bei Buttonklick Aktion starten, nach erneutem Klick beenden Java Basics - Anfänger-Themen 4
J keyListener - Genau 1 Aktion soll bei 1 Tastenausdruck ausgeführt werden Java Basics - Anfänger-Themen 11
S Von Button und Radio Button Aktion bearbeiten Java Basics - Anfänger-Themen 10
H Problem: Button muss zwei Mal angeklickt werden, bis Aktion ausgeführt wird Java Basics - Anfänger-Themen 4
F Countdown und dann Aktion Java Basics - Anfänger-Themen 4
B eine Aktion Wiederholen Java Basics - Anfänger-Themen 6
L Aktion bei Abbruch des Programmes Java Basics - Anfänger-Themen 9
B wiederholte Button-Aktion Java Basics - Anfänger-Themen 3
S Aktion bei Tabwechsel Java Basics - Anfänger-Themen 3
G GUI mit Swing - Zahlen ausgeben und auf Aktion reagieren Java Basics - Anfänger-Themen 2
R Aktion bei Tastendruck Java Basics - Anfänger-Themen 5
J Threads: warten bis erste aktion ausgeführt wurde Java Basics - Anfänger-Themen 6
T aktion bei enter Java Basics - Anfänger-Themen 2
G Aktion bei Änderung in JTextArea starten Java Basics - Anfänger-Themen 2
V Buttons eine Aktion zuweisen Java Basics - Anfänger-Themen 4
S Zwei Tasten gleichzeitig für Aktion Java Basics - Anfänger-Themen 2
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
E Audio Datei unter Bedingungen ausführen Java Basics - Anfänger-Themen 19
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
C 2 SwingWorkers nacheinander ausführen Java Basics - Anfänger-Themen 1
B Wie kann ich folgende Klasse/Methode per Button ausführen? Java Basics - Anfänger-Themen 1
Zrebna Kann Java Programm nicht in Konsole ausführen Java Basics - Anfänger-Themen 1
mervanpolat Binary Search Algorithmus ausführen Java Basics - Anfänger-Themen 1
hebein Mit Javaprogramm webseiten automatisiert befüllen und ausführen Java Basics - Anfänger-Themen 6
Jose05 ausführen im cmd schlägt fehl Java Basics - Anfänger-Themen 2
N Eclipse Programm normal ausführen Java Basics - Anfänger-Themen 1
M Von einem Menü Methode aus anderer Klasse ausführen, die errechnete Werte in Datei schreibt. Java Basics - Anfänger-Themen 8
D Methoden nach einer bestimmten Reihenfolge ausführen. Java Basics - Anfänger-Themen 20
Z Mehtode bei Start des Programms ausführen (Klassen übergreifend) Java Basics - Anfänger-Themen 12
J B-Sprache mit Arrays ausführen Java Basics - Anfänger-Themen 18
C Programm ausführen ohne JRE? Java Basics - Anfänger-Themen 3
B Wie kann ich etwas vor der Main-Methode ausführen? Java Basics - Anfänger-Themen 21
T src Ordner ausführen Java Basics - Anfänger-Themen 9
A Fehler beim Ausführen einer class Datei Java Basics - Anfänger-Themen 6
M Compiler-Fehler Fehler beim Ausführen des Codes Java Basics - Anfänger-Themen 25
F cmd Befehl ausführen Java Basics - Anfänger-Themen 4
H Rekursiv Methode ausführen bei Kindern Java Basics - Anfänger-Themen 12
M Rot Schwarz Bäume, ausführen? Java Basics - Anfänger-Themen 6
CptK Methoden While-Schleife so lange ausführen, wie Methode etwas zurückgibt Java Basics - Anfänger-Themen 2
F Shell Script ausführen Java Basics - Anfänger-Themen 5
F Java auf Windows Konsole ausführen Java Basics - Anfänger-Themen 1
B UML Klassen Diagramm zu Java Code Programmieren und ausführen Java Basics - Anfänger-Themen 21
L Linux Befehle unter Windows in Eclipse ausführen Java Basics - Anfänger-Themen 3
L Shell Script ausführen in Java Java Basics - Anfänger-Themen 4
K Programm ausführen Java Basics - Anfänger-Themen 2
K Durch eine Text eingabe etwas Ausführen Java Basics - Anfänger-Themen 5
CptK Methoden Event bei gedrückter Maustaste immer wieder ausführen Java Basics - Anfänger-Themen 1
CptK Klassen Event bei gedrückter Maus immer wieder mit Pause ausführen Java Basics - Anfänger-Themen 2
dapzoo Class File Version zu niedrig? Ausführen über Eingabeaufforderung nicht möglich Java Basics - Anfänger-Themen 14
alkaA Intellij Java Datei aus nicht Projekt ausführen? Java Basics - Anfänger-Themen 2
G sqlplus commands in java ausführen Java Basics - Anfänger-Themen 15
CptK Interface JTextField: Action mit Enter ausführen Java Basics - Anfänger-Themen 16
CptK Methoden Methode in MouseListner ausführen Java Basics - Anfänger-Themen 1
P jar file lässt sich nicht ausführen Java Basics - Anfänger-Themen 4
N Fehlermeldung beim ausführen des Programmes.. Java Basics - Anfänger-Themen 3
T Klassen 2 Klassen zeitgleich ausführen Java Basics - Anfänger-Themen 3
V Erste Schritte Anfänger: Ausführen eines Java-Programms Java Basics - Anfänger-Themen 5
B Java Eclipse Programm in einer Batch ausführen Java Basics - Anfänger-Themen 3
diqqerrr Java Datei als .exe ausführen Java Basics - Anfänger-Themen 8
I Erste Schritte Native code library failed to load beim Ausführen eines Beispiels Java Basics - Anfänger-Themen 5
Z Enter Taste alle 0,5 Sekunden ausführen Java Basics - Anfänger-Themen 1
H Script ausführen wenn Browser Notification eingetroffen ist? Java Basics - Anfänger-Themen 3
S Methoden Beim Start meines Projektes eine Methode ausführen Java Basics - Anfänger-Themen 14
V Methode eines Objekts einer ArrayList ausführen Java Basics - Anfänger-Themen 3
B Timer mehrere Male ausführen Java Basics - Anfänger-Themen 4
M Java Programm über Batch-Datei ausführen Java Basics - Anfänger-Themen 1
RowdyN Methoden Befehle in zufälliger Reihenfolge ausführen lassen Java Basics - Anfänger-Themen 5
T Parallel ausführen Java Basics - Anfänger-Themen 1
F Konsolen Befehl ausführen und Rückgabe auswerten Java Basics - Anfänger-Themen 3
S .java Datei in java Datei ausführen Java Basics - Anfänger-Themen 9
X Schleife bis "Bedingung" ausführen Java Basics - Anfänger-Themen 13
AssELAss Klassen Java Klasse in main-methode ausführen Java Basics - Anfänger-Themen 7
H Classpath VBScript in Jar-archiv ausführen Java Basics - Anfänger-Themen 2
F Thread um Uhrzeit ausführen Java Basics - Anfänger-Themen 5
D Input/Output Mehrere Befehle nacheinander ausführen Java Basics - Anfänger-Themen 20
quecksilver if-Abfrage in main ausführen Java Basics - Anfänger-Themen 4
F Per Klick Klasse ausführen Java Basics - Anfänger-Themen 4
S Fehler beim Ausführen Java Basics - Anfänger-Themen 5
A Methode aus einer anderen Klasse ausführen Java Basics - Anfänger-Themen 7
F Methode alle 15min ausführen Java Basics - Anfänger-Themen 5
K Exception nur im "Debug"-Modus und jedem 3.-5. mal Ausführen Java Basics - Anfänger-Themen 3
L Konsole öffnen und Java Programm darin ausführen Java Basics - Anfänger-Themen 4
J Ausführen geht nicht Java Basics - Anfänger-Themen 19
K Tastaturkombinationen ausführen Java Basics - Anfänger-Themen 5
S URL Ausführen Java Basics - Anfänger-Themen 2
D Fehlermeldung beim Ausführen eines Java Programms Java Basics - Anfänger-Themen 4
H Funktion in Hintergrund und Vordergrund ausführen Java Basics - Anfänger-Themen 11
J Eingabeaufforderung stürzt ab (beim Ausführen einer Java-Datei) Java Basics - Anfänger-Themen 3
V Algorithmus in einer Methode ausführen Java Basics - Anfänger-Themen 3
U Java Swing Timer mit ButtonKlick starten u. nach 12 Sekunden Befehl ausführen Java Basics - Anfänger-Themen 7
M Komplexe Datenauswertungen in Java oder besser auf Datenbankseite ausführen? Java Basics - Anfänger-Themen 4
E Anderes Programm ausführen Java Basics - Anfänger-Themen 8
I .lnk ausführen oder das Ziel auslesen Java Basics - Anfänger-Themen 7
L0MiN Datei lässt sich nicht ausführen Java Basics - Anfänger-Themen 3
G Variabel: Nach String benannte Methode ausführen Java Basics - Anfänger-Themen 13

Ähnliche Java Themen

Neue Themen


Oben