summaryrefslogtreecommitdiffstats
path: root/src/de/fhswf/in
diff options
context:
space:
mode:
Diffstat (limited to 'src/de/fhswf/in')
-rw-r--r--src/de/fhswf/in/inf/java2/aufgabe04/CountdownExitButton.java48
1 files changed, 34 insertions, 14 deletions
diff --git a/src/de/fhswf/in/inf/java2/aufgabe04/CountdownExitButton.java b/src/de/fhswf/in/inf/java2/aufgabe04/CountdownExitButton.java
index b859b8f..4ba5bf2 100644
--- a/src/de/fhswf/in/inf/java2/aufgabe04/CountdownExitButton.java
+++ b/src/de/fhswf/in/inf/java2/aufgabe04/CountdownExitButton.java
@@ -39,20 +39,21 @@ public class CountdownExitButton extends Button
timeline
.getKeyFrames()
.add(new KeyFrame(
- Duration.seconds(1),
- (e -> {
+ Duration.seconds(1),
+ (e -> {
CountdownExitButton.this
- .setText(CountdownExitButton.this
- .getText()
- .replaceFirst(
- "\\("
- + CountdownExitButton.this.countdown
- + "\\)$",
- "("
- + --CountdownExitButton.this.countdown
- + ")"));
+ .setText(CountdownExitButton.this
+ .getText()
+ .replaceAll(
+ "\\("
+ + CountdownExitButton.this.countdown
+ + "\\)$",
+ "("
+ + --CountdownExitButton.this.countdown
+ + ")"));
if (CountdownExitButton.this.countdown <= 0)
{
+ CountdownExitButton.this.stopCountdown();
CountdownExitButton.this.fire();
}
})));
@@ -64,11 +65,22 @@ public class CountdownExitButton extends Button
*/
public void startCountdown()
{
- super.setText(getText() + " (" + countdown + ")");
+ setText(getText() + " (" + countdown + ")");
timeline.playFromStart();
}
/**
+ * Stops the countdown without the button fire event.
+ *
+ */
+ public void stopCountdown()
+ {
+ timeline.stop();
+ setText(getText().replaceAll(
+ "\\(" + CountdownExitButton.this.countdown + "\\)$", ""));
+ }
+
+ /**
* Set the countdown.
*
* @param countdown
@@ -86,12 +98,20 @@ public class CountdownExitButton extends Button
/**
* Get the countdown.
*
- * @return
- * The countdown in seconds.
+ * @return The countdown in seconds.
*/
public int getCountdown()
{
return countdown;
}
+ /* (non-Javadoc)
+ * @see javafx.scene.control.Button#fire()
+ */
+ @Override
+ public void fire()
+ {
+ stopCountdown();
+ super.fire();
+ }
}