Swing Beenden eines ActionListener über einen Button

Fendrill

Mitglied
Hallo zusammen,

ich experimentiere gerade mit SWING und habe ein Tutorial durchgeklickt und versuche nun das zu erweitern.

Das Ziel ist, dass ich den Text des Start-Button ändere in „Stop“ (was auch funktioniert), dann versuche ich beim nächsten Klicken des gleichen Buttons den Timer zu stoppen – und das funktioniert nicht.

Ich habe schon versucht mit RemoveActionHandler und Timer.stop zu arbeiten, habe aber keinen Erfolg.

Wäre super, wenn mir jemand einen Tipp hätte, was ich falsch mache.

Danke und Gruß
Markus



Mein Quellcode:

Java:
    private void startButtonActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO add your handling code here:


//  startButton.setEnabled( false );

  final long start = System.currentTimeMillis();
  final long end   = start + minutesSlider.getValue() * 60 * 1000;

  final Timer timer = new Timer(100, null );

  timer.addActionListener( new ActionListener() {
    public void actionPerformed( ActionEvent e ) {
      long now = System.currentTimeMillis();
      if ( now >= end )
      {
        remainingMinLabel.setText( "" );
        startButton.setEnabled( true );
        JOptionPane.showMessageDialog( null, "BING!" );
        timer.stop();
      }
      else
          remainingMinLabel.setText( (end - now) / 1000 + " Sekunden");
    }
  } );

  if (startButton.getText().equals("Start") )
        {
            timer.start();
            startButton.setText("Stop");
        }
 else
  {
      remainingMinLabel.setText( "" );
      JOptionPane.showMessageDialog( null, "STOP!" );
      timer.stop();
      startButton.setText("Start");
 }


//    startButton.setEnabled( true );
    }
 
S

SlaterB

Gast
den Timer musst du längerfristig merken, in einem Klassenattribut,
bei stop() keinen neuen Timer erstellen,

z.B. so
Java:
private Timer t = null;

actionPerformed() {
if (stop) {
  t.stop();
  aendere Button zu start
} else {
   t = new Timer() ... usw.
   t.start();
   aendere Button zu stop
}
}
 

Fendrill

Mitglied
das funktioniert nicht: wenn ich den Timer erst in der "actionPerformed"-Methode anlegen, kann ich ja davor keinen actionListener anlegen... ???:L
 
S

SlaterB

Gast
menno, das hast du doch bisher auch schon, dann etwas ausführlicher:

Java:
private Timer t = null;

startButtonActionPerformed() {
if (stop) {
  t.stop();
  aendere Button zu start
} else {
   t = new Timer() ... usw. mit actionPerformed() des Timers usw., 20 Zeilen
   t.start();
   aendere Button zu stop
}
}
nun klarer? alles wie du am Anfang auch schon fast hast,
im wesentlichen der Timer in das if verschoben und vor allem ein Klassenattribut
 

Fendrill

Mitglied
soweit klar - hab ich ja schon versucht... aber wenn ich "private Timer t = null;" einfüge, poppen tausend Fehlermeldung hoch mit dem Hinweis in dieser Zeile "illegal start of expression"

auch mit public davor funktioniert es nicht...

Danke für deine Hilfe!
 

U2nt

Bekanntes Mitglied
soweit klar - hab ich ja schon versucht... aber wenn ich "private Timer t = null;" einfüge, poppen tausend Fehlermeldung hoch mit dem Hinweis in dieser Zeile "illegal start of expression"

auch mit public davor funktioniert es nicht...

Danke für deine Hilfe!

Ich denke mal dann hast du dich vertippt, weil private Timer t = null; sollte aufjedenfall funktionieren.
 

Fendrill

Mitglied
ich habe mich nicht vertippt - habe mal einen Screenshot angehängt - vielleicht erkennst Du ja das Problem...
 

Anhänge

  • Screenshot.JPG
    Screenshot.JPG
    61,5 KB · Aufrufe: 60

U2nt

Bekanntes Mitglied
SlaterB hat dir den Code gegeben, dass der Timer VOR bzw, NACH der startButtonActionPerformed(); Methode benutzt wird und NICHT IN der Methode.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
_user_q Kann man ein 2. JavaFX-Fenster auch beenden (exit) statt schließen (close) lassen? AWT, Swing, JavaFX & SWT 8
N JavaFX Vor beenden der Anwendung durch klicken von X Dialog zeigen AWT, Swing, JavaFX & SWT 1
S Swing Alles beenden bei Fenster mit Scroll-Balken AWT, Swing, JavaFX & SWT 6
D JafaFX Anwendung beenden AWT, Swing, JavaFX & SWT 11
S Action durchführen beim Programm beenden AWT, Swing, JavaFX & SWT 3
T ThreadPool sicher beenden unter Verwendung von swt.widgets.Display.syncExec AWT, Swing, JavaFX & SWT 1
S Event Handling konsole Programm mit Tastendruck beenden AWT, Swing, JavaFX & SWT 5
I Swing Menu->Beenden AWT, Swing, JavaFX & SWT 6
A KeyListener Button wechseln & Programm beenden AWT, Swing, JavaFX & SWT 4
J Button soll nach Klick Text ändern und Programm in 3 Sekunden beenden AWT, Swing, JavaFX & SWT 6
B Über SWT Button Thread beenden AWT, Swing, JavaFX & SWT 2
J Schließen über x soll zwei Prozesse beenden AWT, Swing, JavaFX & SWT 7
1 CellEditor mit ComboBox richtig beenden AWT, Swing, JavaFX & SWT 4
P Vor Beenden änderungen prüfen AWT, Swing, JavaFX & SWT 2
R Endlosschleife auf JButton druck beenden AWT, Swing, JavaFX & SWT 9
S AWT Fenster schließen und Programm beenden AWT, Swing, JavaFX & SWT 10
E Swing CellEditor bei Fokusverlust Bearbeitung beenden?! AWT, Swing, JavaFX & SWT 6
J Java-Applet beenden AWT, Swing, JavaFX & SWT 3
T Java Applet beenden AWT, Swing, JavaFX & SWT 2
S Gridlayout - Tabellenzeile "beenden" AWT, Swing, JavaFX & SWT 3
P Mouse Listener beenden AWT, Swing, JavaFX & SWT 14
E windowClosing() - JFrame nicht durch X knopf gleich beenden? AWT, Swing, JavaFX & SWT 9
M Programm beenden AWT, Swing, JavaFX & SWT 10
S Thread beenden, wenn Component nicht mehr benötigt wird AWT, Swing, JavaFX & SWT 12
J Fenster schließen ohne das Programm zu beenden AWT, Swing, JavaFX & SWT 3
G java.awt Vollbild beenden AWT, Swing, JavaFX & SWT 6
M JTable: TableCellEditor nach Eingabe sofort beenden? AWT, Swing, JavaFX & SWT 3
T DIALOG für BEENDEN AWT, Swing, JavaFX & SWT 11
R Beenden Dialog beim Schließen AWT, Swing, JavaFX & SWT 2
S Bei SWT den Windows beenden Button manipulieren? AWT, Swing, JavaFX & SWT 4
U Anwendung nicht beenden beim form schliessen? AWT, Swing, JavaFX & SWT 6
M KeyEvent - Programm mit ESC beenden AWT, Swing, JavaFX & SWT 7
G "Alte" Instanzen beenden AWT, Swing, JavaFX & SWT 2
S Anwendung über Button beenden? AWT, Swing, JavaFX & SWT 4
N Beenden-Dialog mit "Beenden" und "Abbrechen&q AWT, Swing, JavaFX & SWT 2
V Zweimal klicken um Modalen Dialog zu beenden? AWT, Swing, JavaFX & SWT 15
S JPopupMenu - Kontrolliert beenden AWT, Swing, JavaFX & SWT 3
G MouseEvent beenden AWT, Swing, JavaFX & SWT 17
B JOptionDialog mit Enter Beenden? AWT, Swing, JavaFX & SWT 5
L JOP.showInputDialog: Abbrechen Button-Funktion beenden AWT, Swing, JavaFX & SWT 5
X Fenster schließen aber nicht beenden AWT, Swing, JavaFX & SWT 9
S "Millionen" von Threads? Programm komplett beenden AWT, Swing, JavaFX & SWT 2
J CellEditor per Button beenden AWT, Swing, JavaFX & SWT 2
K Programm lässt sich nicht beenden AWT, Swing, JavaFX & SWT 9
jojoge wie kann ich in eine Benennung eines JButtons eine Variable einbauen? AWT, Swing, JavaFX & SWT 6
L paintComponent in Panel eines Borderlayouts hinzufügen AWT, Swing, JavaFX & SWT 3
I Einbindung eines jpg/png/icons in eine GUI AWT, Swing, JavaFX & SWT 1
Splayfer Umrandung eines AttributedStrings AWT, Swing, JavaFX & SWT 2
Guybrush Threepwood Einfachste Möglichkeit zum Abspielen eines Videos in Swing AWT, Swing, JavaFX & SWT 4
Jose05 NullPointerException bei Beschreiben eines Labels aus einem Array AWT, Swing, JavaFX & SWT 12
Jose05 zugreifen auf ein Objekt eines GridPanes AWT, Swing, JavaFX & SWT 0
melaniemueller Verschiebung eines Fensters über Button AWT, Swing, JavaFX & SWT 27
news2swen automatisches erstellen eines Languagefiles AWT, Swing, JavaFX & SWT 1
B Stylen eines JTextPane funktioniert nicht AWT, Swing, JavaFX & SWT 1
MiMa Schliessen eines FXML Fensters? AWT, Swing, JavaFX & SWT 10
B JavaFX Farbe eines Quadrates in einer separaten Klasse ändern AWT, Swing, JavaFX & SWT 4
L AWT Ändern der Farbe eines BufferedImage mit Farbähnlichkeit AWT, Swing, JavaFX & SWT 5
B veränderte Größe eines Panels im Vorhinein wissen? AWT, Swing, JavaFX & SWT 1
L Komponenten eines Panels werden erst nach Klick darauf angezeigt AWT, Swing, JavaFX & SWT 13
L JavaFX Validierung eines Spinner AWT, Swing, JavaFX & SWT 1
M Builden eines lauffähigen JAR Files AWT, Swing, JavaFX & SWT 3
K Swing Text eines Lables in einer Methode ändern AWT, Swing, JavaFX & SWT 13
M JavaFX rotieren eines Kreises mit konstanter Geschwindigkeit AWT, Swing, JavaFX & SWT 1
K JavaFX Allgemeine Fragen zu dem Aufbau eines Programms hinsichtlich der Klassen AWT, Swing, JavaFX & SWT 1
M JavaFX Auf ein UI Elemement eines anderen Controllers zugreifen AWT, Swing, JavaFX & SWT 0
P Bewegung eines Balkens in eineum JPanel welches als Spielfeld fungiert AWT, Swing, JavaFX & SWT 2
Tronert JavaFX Linienstärke eines Separators ändern? AWT, Swing, JavaFX & SWT 3
N JavaFX Group: Gezieltes entfernen eines Objects (Rectangle) AWT, Swing, JavaFX & SWT 0
J Ziehen eines Buttons im JPanel AWT, Swing, JavaFX & SWT 2
J Drag and Drop eines Buttons AWT, Swing, JavaFX & SWT 0
M NullPointerException bei Übergabe eines RadioButtons AWT, Swing, JavaFX & SWT 11
DaCrazyJavaExpert Swing Extern den Text eines nicht fetsgelegten Buttons bekommen. AWT, Swing, JavaFX & SWT 12
J JavaFX Rectangle innerhalb eines Rectangle oder Panes positionieren? AWT, Swing, JavaFX & SWT 1
C JavaFX Inhalt eines SplitPane's durch Menü-Auswahl ändern? AWT, Swing, JavaFX & SWT 13
J linken Bildausschnitt eines BufferedImage abschneiden AWT, Swing, JavaFX & SWT 4
J bestimmten Bereich eines JPanels drucken AWT, Swing, JavaFX & SWT 2
D LookAndFeel Überschreiben eines UIDelegate AWT, Swing, JavaFX & SWT 0
T Java FX Probleme beim befüllen eines Tableviews AWT, Swing, JavaFX & SWT 5
C Zeichen eines 6 -Eckes AWT, Swing, JavaFX & SWT 1
U JavaFX Wechsel der Scene nach betätigen eines Button AWT, Swing, JavaFX & SWT 2
F Screenshot eines JPanel AWT, Swing, JavaFX & SWT 3
S JavaFX TreeItem: Icon am Ende eines Eintrags anhängen AWT, Swing, JavaFX & SWT 2
D TAB Taste innerhalb eines JSpinner AWT, Swing, JavaFX & SWT 2
R Update eines Labels bei Methodenaufruf einer anderen Klasse AWT, Swing, JavaFX & SWT 9
F Swing Spaltenbreite einer Column eines JTable auslesen AWT, Swing, JavaFX & SWT 5
D Swing Komponenten Anordnung eines Panels in Verbindung eines weiteren Panels AWT, Swing, JavaFX & SWT 9
F Swing Rotation eines Bildes mit beliebigen Koordinaten um den Mittelpunkt AWT, Swing, JavaFX & SWT 3
Cromewell JavaFX Nur bestimmten Teil eines Canvas rendern und anzeigen AWT, Swing, JavaFX & SWT 2
Z Swing Variable eines Objekt aus Hashmap in JList anzeigen AWT, Swing, JavaFX & SWT 1
D Frame beim starten eines anderen Frames schließen AWT, Swing, JavaFX & SWT 2
R Hilfe beim ändern des Hintergrundes eines JFrames AWT, Swing, JavaFX & SWT 9
T Durch klicken eines Buttons Klasse wechseln AWT, Swing, JavaFX & SWT 2
E Swing Copy und Paste eines einzelnen Knoten aus einem JTree AWT, Swing, JavaFX & SWT 1
J Swing Vertikales Zeichnen eines Strings mit Java2D AWT, Swing, JavaFX & SWT 1
7 JavaFX Problem beim Zeichnen eines Dreiecks in einem GUI AWT, Swing, JavaFX & SWT 6
V JavaFX Teile eines Images Transparent machen AWT, Swing, JavaFX & SWT 4
I JavaFX Langes drücken eines Buttons AWT, Swing, JavaFX & SWT 4
B Swing Wie Witdh und Height eines GuiElements bekommen AWT, Swing, JavaFX & SWT 5
L Swing Teile eines JPanel in eigene Klasse auslagern AWT, Swing, JavaFX & SWT 3
M Swing JPanel innerhalb eines Frames verschieben AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben