Случайное нажатие клавиши Enter в моем приложении JavaFx Запускает неправильное действие кнопки - PullRequest
0 голосов
/ 23 июня 2018

Нажатие клавиши Enter в моем приложении javaFx вызывает неправильную кнопку, в этом случае она вызывает кнопку выхода из системы В чем именно может быть проблема.

Выдержка FXML

<VBox layoutX="7.0" layoutY="160.0" prefHeight="407.0" prefWidth="174.0" AnchorPane.bottomAnchor="0.0" AnchorPane.topAnchor="160.0">
  <children>
    <Button mnemonicParsing="false" prefHeight="26.0" prefWidth="180.0" text="Add Account" textFill="#c94949" underline="true" />
    <Button defaultButton="true" layoutX="10.0" layoutY="10.0" mnemonicParsing="false" prefHeight="26.0" prefWidth="180.0" text="Account List" textAlignment="CENTER" underline="true" wrapText="true">
    <VBox.margin>
    <Insets top="10.0" />
     </VBox.margin>
    </Button>
    <Button fx:id="logoutButton" onAction="#logoutButtonAccount" defaultButton="true" layoutX="10.0" layoutY="10.0" mnemonicParsing="false" prefHeight="26.0" prefWidth="180.0" text="Logout" textAlignment="CENTER" underline="true" wrapText="true">
    <VBox.margin>
   <Insets top="10.0" />
  </VBox.margin>
  </Button>
  </children>
  </VBox>

Функция называется

    public void logoutButtonAccount(ActionEvent actionEvent) {

        loginManager.logout();
        println(actionEvent.getSource().toString());

    }

Но случайное нажатие клавиши ввода в моем приложении вызывает это и выходит из приложения.Любая помощь или предложения очень важны.

Я попытался распечатать источник события, который все еще говорит, что он из выхода. Кнопка

ВЫХОД:

Button[id=logoutButton, styleClass=button]'Logout'
Button[id=logoutButton, styleClass=button]'Logout'
Button[id=logoutButton, styleClass=button]'Logout'
Button[id=logoutButton, styleClass=button]'Logout'

Это результатпосле нажатия введите несколько раз, не нажимая на кнопку.Спасибо за ваш совет или предложение заранее.

1 Ответ

0 голосов
/ 23 июня 2018

Значение атрибута defaultButton = "true" является его причиной.

измените его на false или устраните атрибут, решите его.

    <Button fx:id="logoutButton" onAction="#logoutButtonAccount" defaultButton="false" layoutX="10.0" layoutY="10.0" mnemonicParsing="false" prefHeight="26.0" prefWidth="180.0" text="Logout" textAlignment="CENTER" underline="true" wrapText="true">

 <VBox.margin>
    <Insets top="10.0" />
 </VBox.margin>

</Button>

Так же, как заметил @zlakad.

...