Не вызывается addButtonAction

157
02 июля 2019, 02:00

Есть один FXML файл "sample.fxml" код ниже:

       <?xml version="1.0" encoding="UTF-8"?>
       <?import javafx.scene.control.Label?>
       <?import javafx.scene.image.Image?>
       <?import javafx.scene.image.ImageView?>
       <?import javafx.scene.layout.Pane?>
       <?import javafx.scene.text.Font?>

  <ImageView fx:id="lock" fitHeight="32.0" fitWidth="32.0" layoutX="292.0" onMousePressed="#lockButtonAction" pickOnBounds="true" preserveRatio="true">
     <image>
        <Image url="@res/images/iconfinder_lock_285646.png" />
     </image>
  </ImageView>
   <ImageView fx:id="close" fitHeight="32.0" fitWidth="32.0" layoutX="320.0" onMousePressed="#closeButtonAction" pickOnBounds="true" preserveRatio="true">
       <image>
           <Image url="@res/images/iconfinder_sign-error_299045.png" />
       </image>
   </ImageView>
   <ImageView fx:id="add"  fitHeight="32.0" fitWidth="32.0" layoutY="177.0" onMousePressed="#addButtonAction" pickOnBounds="true" preserveRatio="true">
       <image>
           <Image url="@res/images/iconfinder_sign-add_299068.png" />
       </image>
   </ImageView>
  <Label fx:id="time" contentDisplay="TOP" layoutX="13.0" layoutY="8.0" prefHeight="70.0" prefWidth="208.0" text="00:00:00" textFill="WHITE">
     <font>
        <Font name="Segoe UI Bold" size="51.0" />
     </font>
  </Label>
  <Label fx:id="more" layoutX="36.0" layoutY="185.0" text="More" textFill="#fffefe">
     <font>
        <Font name="Segoe UI" size="17.0" />
     </font></Label>

Есть класс "Controller" код ниже:

public class Controller {
@FXML private Pane pane;
@FXML private Label time;
@FXML private static Label more;
@FXML private static ImageView add;
@FXML private static ImageView close;
@FXML private static ImageView lock;
@FXML private Label percents;
private boolean ToTop = false;
private int minute;
private int hour;
private int second;
private boolean AddState = true;
public static void awake()  {
    if (SystemTray.isSupported()) {
        displayTray("Widget enabled");
    } else {
        System.err.println("System tray not supported!");
    }
}
private static void displayTray(String caption) {
    SystemTray tray = SystemTray.getSystemTray();
    Image image = Toolkit.getDefaultToolkit().createImage("icon.png");
    TrayIcon trayIcon = new TrayIcon(image, "Tray Demo");
    trayIcon.setImageAutoSize(true);
    trayIcon.setToolTip("System tray icon demo");
    try {
        tray.add(trayIcon);
    } catch (AWTException e) {
        e.printStackTrace();
    }
    trayIcon.displayMessage(caption, "Thank you for using", TrayIcon.MessageType.INFO);
}
@FXML
public synchronized void initialize() {
    Timeline clock = new Timeline(new KeyFrame(Duration.ZERO, e -> {
        second = LocalDateTime.now().getSecond();
        minute = LocalDateTime.now().getMinute();
        hour = LocalDateTime.now().getHour();
        String str = String.format("%02d:%02d:%02d",hour,minute, second);
        time.setText(str);
    }),
            new KeyFrame(Duration.seconds(1))
    );
    clock.setCycleCount(Animation.INDEFINITE);
    clock.play();
}
public static void makeTransition(boolean state){
    if (state){
        add.setLayoutY(551);
        lock.setLayoutX(456);
        close.setLayoutX(489);
        more.setLayoutY(558);
        more.setText("Fewer");
        stage.setHeight(522);
        stage.setWidth(583);
    }else{
        add.setLayoutY(177);
        lock.setLayoutX(292);
        close.setLayoutX(320);
        more.setLayoutY(185);
        more.setText("More");
        stage.setHeight(210);
        stage.setWidth(350);
    }
}
@FXML
private void addButtonAction(){
    if (AddState){
        makeTransition(false);
        AddState = false;
    }else{
        makeTransition(true);
        AddState = true;
    }
}
    @FXML
     private void closeButtonAction(){
    alert();
}
@FXML
private void lockButtonAction() throws IOException {
    if (ToTop){
        ToTop = false;
    }else{
        ToTop = true;
    }
    Block(ToTop);
}
private void Block(boolean state) {
    stage.setAlwaysOnTop(state);
    if(state){
        Main.setMoveWindow(false);
    }else{
        Main.setMoveWindow(true);
    }
}
public void alert(){
    Alert alert = new Alert(Alert.AlertType.CONFIRMATION,"", ButtonType.YES, ButtonType.NO);  //new alert object
    alert.setTitle("Exit?");
    alert.setContentText("Are you sure want to exit?");
    alert.getDialogPane().setPrefSize(170, 100); //sets size of alert box
    Optional<ButtonType> result = alert.showAndWait();
    if (result.get() == ButtonType.YES){
        displayTray("Widget disabled");
        System.exit(0);
    } else {
    }
}

   }

Проблема заключается в том, что по нажатию кнопки, как вы могли заметить под fx:id "add", должна вызываться функция addButtonAction() котороя и изменяет размеры и положения элементов. Но вместо этого происходит ровным счетом ничего.

В JavaFx я новый поэтому возможно в чем-то ошибся))

Отнеситесь снесходительно ко мне))

Заранее спасибо

READ ALSO
Java выдается ошибка при компиляции

Java выдается ошибка при компиляции

Нашел в инете код но он выдает ошибку:

137
Добавление базы данных sqlite при сборке проекта

Добавление базы данных sqlite при сборке проекта

Вопрос таков,собрал проект с помощью мавен,получился jar with dependencies,из консоли intellej idea jar запускается и отлично работаетИз обычной виндовской...

117
почему foreach выходит не пройдя по всему HashMap?

почему foreach выходит не пройдя по всему HashMap?

если вместо while написать sout(a) то выводит все нужные ключи, а с while только первый попавшийся, подскажите что не так? то есть мне требуется вывести...

151