package sliderfx;

import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Slider;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.FlowPane;
import javafx.scene.layout.GridPane;
import javafx.scene.text.Text;
import javafx.stage.Stage;

public class SliderFX extends Application {

	@Override
	public void start(Stage stage) throws Exception {
		BorderPane root = new BorderPane();

		FlowPane top = new FlowPane();
		top.setAlignment(Pos.CENTER);

		Text lab = new Text("Broj redova i kolona:");
		top.getChildren().add(lab);
		Slider slider = new Slider(0, 9, 0);
		slider.setShowTickLabels(true);
		slider.setBlockIncrement(1);
		top.getChildren().add(slider);

		GridPane grid = new GridPane();
		grid.setAlignment(Pos.CENTER);
		root.setCenter(grid);

		slider.valueProperty().addListener(new ChangeListener<Number>() {
			public void changed(ObservableValue<? extends Number> ov,
					Number old_val, Number new_val) {
				grid.getChildren().clear();
				for (int i = 1; i <= new_val.intValue(); i++)
					for (int j = 1; j <= new_val.intValue(); j++)
						grid.add(new Button("(" + i + "," + j + ")"), j, i);
			}
		});

		root.setTop(top);

		Scene scene = new Scene(root, 500, 500);

		stage.setScene(scene);
		stage.show();
	}

	public static void main(String[] args) {
		Application.launch(args);
	}

}
