Кнопка нажимается только в определённом участке JavaFX

Такая проблема, кнопка нажимется только в определённом участке (выделено красным)введите сюда описание изображения

Код окна:

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.text.*?>

<Pane id="MainPanel" fx:id="MainPanel" prefHeight="600.0" prefWidth="900.0" styleClass="MainPanel" stylesheets="@javaFX.css" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.Controller">
   <children>
      <Pane id="ControlPanel" layoutX="14.0" layoutY="14.0" prefHeight="85.0" prefWidth="885.0" styleClass="ControlPanel" stylesheets="@javaFX.css">
         <children>
            <Button id="buttonDraw" fx:id="button" layoutX="742.0" layoutY="10.0"  prefHeight="61.0" prefWidth="129.0" stylesheets="@javaFX.css" text="Нарисовать" />
            <Label layoutX="14.0" layoutY="14.0" prefHeight="17.0" prefWidth="149.0" text="Введи координату по X" textFill="WHITE">
               <font>
                  <Font name="Calibri Bold Italic" size="14.0" />
               </font></Label>
            <TextField layoutX="14.0" layoutY="42.0" />
            <TextField layoutX="177.0" layoutY="42.0" />
            <TextField layoutX="339.0" layoutY="42.0" />
            <Label layoutX="177.0" layoutY="14.0" prefHeight="17.0" prefWidth="149.0" text="Введи координату по Y" textFill="WHITE">
               <font>
                  <Font name="Calibri Bold Italic" size="14.0" />
               </font>
            </Label>
            <Label layoutX="339.0" layoutY="14.0" prefHeight="17.0" prefWidth="149.0" text="Введи размер фигуры" textFill="WHITE">
               <font>
                  <Font name="Calibri Bold Italic" size="14.0" />
               </font>
            </Label>
         </children></Pane>
      <Pane layoutX="14.0" layoutY="109.0" prefHeight="485.0" prefWidth="885.0" style="-fx-background-color: #FFF;">
         <children>
            <Pane layoutX="504.0" layoutY="-86.0" prefHeight="68.0" prefWidth="200.0">
               <children>
                  <RadioButton layoutX="13.0" layoutY="38.0" mnemonicParsing="false" prefHeight="17.0" prefWidth="87.0" selected="true" text="Квадрат" textFill="WHITE">
                     <font>
                        <Font name="Calibri Bold Italic" size="13.0" />
                     </font>
                     <toggleGroup>
                        <ToggleGroup fx:id="radio1" />
                     </toggleGroup>
                  </RadioButton>
                  <RadioButton layoutX="113.0" layoutY="38.0" mnemonicParsing="false" prefHeight="17.0" prefWidth="65.0" text="Круг" textFill="WHITE" toggleGroup="$radio1">
                     <font>
                        <Font name="Calibri Bold Italic" size="13.0" />
                     </font>
                  </RadioButton>
                  <Label layoutX="39.0" layoutY="6.0" prefHeight="17.0" prefWidth="149.0" text="Выбери фигуру" textFill="WHITE">
                     <font>
                        <Font name="Calibri Bold Italic" size="14.0" />
                     </font>
                  </Label>
               </children>
            </Pane>
         </children></Pane>
   </children>
</Pane>

CSS:

#MainPanel{
    -fx-background-color: linear-gradient(#191970 20%, #000000 100%);
}

#ControlPanel{
    -fx-background-color: #D2691E;
    -fx-border-radius: 10 10 10 10;
    -fx-background-radius: 10 10 10 10;
}

#buttonDraw {
    -fx-text-fill: white;
    -fx-font-family: "Arial Narrow";
    -fx-font-weight: bold;
    -fx-background-color: linear-gradient(#61a2b1, #2A5058);
    -fx-effect: dropshadow( three-pass-box , rgba(0,0,0,0.6) , 5, 0.0 , 0 , 1 );

}

#buttonDraw:hover {
 -fx-background-color: linear-gradient(#2A5058, #61a2b1);
}

#buttonDraw:pressed {
 -fx-background-color: linear-gradient(#2A5058, #2A5058);
}

Код контроллера:


import javafx.fxml.FXML;

import javafx.scene.control.Button;

public class Controller{
    @FXML
    private Button button;

    @FXML
    public void initialize(){
        button.setOnAction(e -> System.out.println("sda"));
    }

}

В чём может быть проблема, мб я что то упускаю?


Ответы (1 шт):

Автор решения: Ruslan P.

Pane содержит базовую функциональность по размещению элементов, нужно самостоятельно следить за позиционированием, чтобы избежать "эксцессов". В данном случае лучше использовать, например, javafx.scene.layout.GridPane.

→ Ссылка