Кнопка нажимается только в определённом участке 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.