import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextField;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;

/**
 * A basic JavaFX application showing basic controls, containers, and event
 * handling.
 */
public class JavaFXDemo2 extends Application {

	public static void main ( String[] args ) {
		launch(args);
	}

	@Override
	public void start ( Stage stage ) throws Exception {
		stage.setTitle("JavaFX Demo #2");

		BorderPane root = new BorderPane();
		Scene scene = new Scene(root);
		stage.setScene(scene);
		// keep the window from being resized by the user
		stage.setResizable(false);

		// controls
		TextField text = new TextField("");
		text.setPrefColumnCount(8);

		Button top = new Button("top");
		top.setOnAction(new ButtonHandler(text,"top"));

		Button center = new Button("center");
		center.setOnAction(new ButtonHandler(text,"center"));

		Button left = new Button("left");
		left.setOnAction(new ButtonHandler(text,"left"));

		Button right = new Button("right");
		right.setOnAction(new ButtonHandler(text,"right"));

		// add nodes to the root of the scene graph
		root.setTop(top);
		root.setCenter(center);
		root.setLeft(left);
		root.setRight(right);
		root.setBottom(text);

		stage.show();
	}

	private class ButtonHandler implements EventHandler<ActionEvent> {

		private TextField text_;
		private String message_;
		
		private ButtonHandler ( TextField text, String message ) {
			text_ = text;
			message_ = message;
		}
		
		@Override
		public void handle ( ActionEvent e ) {
			text_.setText(message_);
		}
		
		
	}
}
