GrowBox.java

Download source from GrowBox.jar


GrowBox.java

import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Group;
//import javafx.scene.Cursor;
import javafx.scene.*;
import javafx.event.EventHandler;
import javafx.scene.paint.*;
import javafx.scene.shape.*;
import javafx.collections.*;
import javafx.geometry.Point2D;
import javafx.geometry.Bounds;
import javafx.scene.input.* ;
import javafx.scene.layout.Pane;
import java.lang.Math;

import javafx.scene.control.Button;
import javafx.event.ActionEvent;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;

import java.util.ArrayList;

public class GrowBox extends Application {
    Group grp = new Group();
    Rectangle r = null;
    double xs,ys,xe,ye;

    public void start(Stage stage) {
	// Create a border pane 
    	BorderPane pane = new BorderPane();
	Scene scene = new Scene(pane, 400, 400);

	Pane mypane = new Pane();
	pane.setCenter(mypane);
	mypane.getChildren().add(grp);



	grp.setTranslateX(scene.getWidth()/2);
	grp.setTranslateY(scene.getHeight()/2);
	double res = 96;
	grp.setScaleX(res);
	grp.setScaleY(res);

	Grid.draw(grp);


	grp.setOnMousePressed( e ->
	{
	    //System.out.println("event type " + e.getEventType());
	    //System.out.println("Local " + e.getX() + "  " + e.getY());
	    xs = e.getX();
	    ys = e.getY();
	    r = new Rectangle(xs,ys,0,0);
	    r.setStroke(Color.BLACK);
	    r.setStrokeWidth(1/res);
	    r.setStrokeLineCap(StrokeLineCap.ROUND);
	    r.setFill(Color.TRANSPARENT);
	    grp.getChildren().add(r);
	}
	);

	grp.setOnMouseDragged( e ->
	{
		xe = e.getX();
		ye = e.getY();

		double width = xe - xs;
		if (width>0) r.setX(xs);
		else r.setX(xe);
		r.setWidth(Math.abs(width));
		double height = ye-ys;
		if (height>0) r.setY(ys);
		else r.setY(ye);
		r.setHeight(Math.abs(height));
	}
	);

	grp.setOnMouseReleased( e ->
	{
		r.setFill(Color.WHITE);
	}
	);

	

        stage.setTitle("GrowBox");
        stage.setScene(scene);
        stage.show();

    }


}


Maintained by John Loomis, updated Mon Mar 05 12:22:40 2018