Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class FXMLDocumentController implements Initializable {
- @FXML
- private Slider spinnerTrvání;
- @FXML
- private CheckBox cbAutoReverse;
- @FXML
- private CheckBox cbPrizpusobeniSmeru;
- @FXML
- private CheckBox cbOtoceniNaKonci;
- @FXML
- private Pane pane;
- private ObservableList<Node> tvary;
- private ObservableList<Circle> body;
- private Path path;
- private PathTransition pt;
- @FXML
- private Button stopBtn;
- private final Image im = new Image("obrazky/lokomotiva.png");
- private ImageView iv;
- @Override
- public void initialize(URL url, ResourceBundle rb) {
- cbAutoReverse.setSelected(true);
- cbPrizpusobeniSmeru.setSelected(true);
- tvary = pane.getChildren();
- body = FXCollections.observableArrayList();
- stopBtn.setDisable(true);
- iv = new ImageView(im);
- }
- @FXML
- private void vymazVseButton(ActionEvent event) {
- }
- @FXML
- private void startButton(ActionEvent event) {
- if (body.size() > 1) {
- if (iv.getImage() != null) {
- tvary.remove(iv);
- }
- pt = new PathTransition(Duration.seconds(spinnerTrvání.getValue()), path);
- iv.setFitHeight(60);
- iv.setFitWidth(60);
- pt.setNode(iv);
- if (cbAutoReverse.isSelected()) {
- pt.setAutoReverse(true);
- } else {
- pt.setAutoReverse(false);
- }
- if (cbPrizpusobeniSmeru.isSelected()) {
- pt.setOrientation(PathTransition.OrientationType.ORTHOGONAL_TO_TANGENT);
- } else {
- pt.setOrientation(PathTransition.OrientationType.NONE);
- }
- if (cbOtoceniNaKonci.isSelected()) {
- pt.setCycleCount(2);
- } else {
- pt.setCycleCount(1);
- }
- tvary.add(iv);
- pt.play();
- stopBtn.setDisable(false);
- }
- }
- @FXML
- private void stopButton(ActionEvent event) {
- pt.stop();
- tvary.remove(iv);
- stopBtn.setDisable(true);
- }
- @FXML
- private void mouseClicked(MouseEvent event) {
- if (event.getButton() == MouseButton.PRIMARY) {
- Circle c = new Circle(event.getX(), event.getY(), 5);
- c.setStroke(Color.BLACK);
- c.setFill(Color.AQUAMARINE);
- c.setOnMouseClicked(value -> {
- if (value.getButton() == MouseButton.SECONDARY) {
- tvary.clear();
- body.remove(c);
- if (body.size() > 1) {
- udelejDrahu();
- }
- tvary.addAll(body);
- }
- });
- tvary.add(c);
- body.add(c);
- if (body.size() > 1) {
- udelejDrahu();
- }
- }
- }
- private void udelejDrahu() {
- path = new Path();
- MoveTo mt = new MoveTo(body.get(0).getCenterX(),body.get(0).getCenterY());
- path.getElements().add(mt);
- for (int i = 1; i < body.size(); i++) {
- LineTo lt = new LineTo(body.get(i).getCenterX(),body.get(i).getCenterY());
- path.getElements().add(lt);
- Line line = new Line(body.get(i-1).getCenterX(),body.get(i-1).getCenterY(),
- body.get(i).getCenterX(),body.get(i).getCenterY());
- line.setStroke(Color.BLUE);
- line.getStrokeDashArray().addAll(10d, 10d);
- tvary.add(line);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement