/** * Class CardChangeEvent. */ package de.fhswf.in.inf.java2.aufgabe02; import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Node; import javafx.scene.control.Label; /** * Generic handler for loading Labels on button click. * * @author $Author: $ * @version $Revision: $, $Date: $ UTC */ public class CardChangeEvent implements EventHandler { private ObservableList children; private String labelName; private Label label = null; /** * Adds an eventHandler for the button so that a label is loaded into the * stack pane. * */ public CardChangeEvent(ObservableList children, String labelName) { if (children == null) { throw new IllegalArgumentException("children can't be null."); } if (labelName == null) { throw new IllegalArgumentException("labelName can't be null."); } if (labelName.isEmpty()) { throw new IllegalArgumentException("labelName can't be empty."); } this.children = children; this.labelName = labelName; } /* * (non-Javadoc) * * @see javafx.event.EventHandler#handle(javafx.event.Event) */ @Override public void handle(ActionEvent event) { for (Node node : children) { node.setVisible(false); } if (label == null) { label = new Label(labelName); children.add(label); } label.setVisible(true); } }