Code:
package javafxtemplate1;
import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.input.MouseEvent;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.effect.Bloom;
import javafx.scene.effect.BoxBlur;
import javafx.scene.effect.DropShadow;
import javafx.scene.effect.Glow;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.HBox;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.shape.Ellipse;
import javafx.scene.shape.Rectangle;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;
//port ExternalClass1;
/**
*
* @author Manas14
*/
public class JavaFXTemplate1 extends Application {
double orgSceneX, orgSceneY;
double orgTranslateX, orgTranslateY;
@Override
public void start(Stage primaryStage) {
final ImageView selectedImage = new ImageView();
Image image1 = new Image
(JavaFXTemplate1.class.getResourceAsStream("banner2B.jpg"));
selectedImage.setFitHeight(60);
selectedImage.setFitWidth(100);
selectedImage.setImage(image1);
// setX,setY, setWidth,
//Rectangle rect1 = new Rectangle(200, 90, Color.BROWN);
StackPane spane = new StackPane();
//Circle(double centerX, double centerY, double radius)
Circle circle1 = new Circle(250,250, 90, Color.GREEN);
Ellipse circle2 = new Ellipse(100,100,60,50);
circle2.setStroke(Color.YELLOW);
circle2.setFill(null);
circle2.setStrokeWidth(3);
circle2.setOnMousePressed(circleOnMousePressed);
circle2.setOnMouseDragged(circleOnMouseDragged);
//circle2.setArcWidth(25);
//circle2.setArcHeight(25);
//spane.setLayoutX(250);spane.setLayoutY(250);
// setMinSize width, height
spane.setMinSize(350,200);
spane.setStyle("-fx-padding: 10;" +"-fx-background-color: RED;"+
"-fx-border-style: solid inside;" +
"-fx-border-width: 4;" +
"-fx-border-color: yellow;");
spane.getChildren().addAll(circle1,selectedImage, circle2);
HBox root = new HBox( spane);
root.setAlignment(Pos.CENTER);
root.setSpacing(20);
root.setStyle("-fx-padding: 10;" +
"-fx-border-style: solid inside;" +
"-fx-border-width: 4;" +
"-fx-border-insets: 5;" +
"-fx-border-radius: 5;" +
"-fx-border-color: blue;");
Scene scene = new Scene(root, 400, 250);
primaryStage.setScene(scene);
primaryStage.setTitle("Applying Effects");
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
EventHandler circleOnMousePressed =
(MouseEvent t) -> {
orgSceneX = t.getSceneX();
orgSceneY = t.getSceneY();
orgTranslateX = ((Ellipse)(t.getSource())).getTranslateX();
orgTranslateY = ((Ellipse)(t.getSource())).getTranslateY();
((Circle)(t.getSource())).toFront();
};
EventHandler circleOnMouseDragged =
(MouseEvent t) -> {
double offsetX = t.getSceneX() - orgSceneX;
double offsetY = t.getSceneY() - orgSceneY;
double newTranslateX = orgTranslateX + offsetX;
double newTranslateY = orgTranslateY + offsetY;
((Ellipse)(t.getSource())).setTranslateX(newTranslateX);
((Ellipse)(t.getSource())).setTranslateY(newTranslateY);
};
}
|