Ошибка подтверждения в NSEvent? - PullRequest
0 голосов
/ 14 сентября 2018

спасибо, что нашли время, чтобы прочитать это. Я довольно новичок в JavaFX и у меня есть странная ошибка в компиляторе, о которой я хотел бы узнать.

Вот ошибка:

2018-09-13 19:09:36.387 java[8040:660455] unrecognized type is 4294967295
2018-09-13 19:09:36.387 java[8040:660455] *** Assertion failure in -[NSEvent _initWithCGEvent:eventRef:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/AppKit/AppKit-1652/AppKit.subproj/NSEvent.m:1969

Вот код, с которым я работаю: Это в файле .java с именем applicationSettings

public static double lookupUser(String name, String password) throws IOException {
    InputStream inputStream = applicationSettings.class.getResourceAsStream("/files/users.xlsx");
    XSSFWorkbook workbook = new XSSFWorkbook(inputStream);
    XSSFSheet sheet = workbook.getSheetAt(0);
    Integer lastRow = sheet.getPhysicalNumberOfRows();
    int currentRow = 1;

    while(currentRow < lastRow) {
        if(sheet.getRow(currentRow).getCell(0).getStringCellValue().toLowerCase().equals(name.toLowerCase())) {
            if(sheet.getRow(currentRow).getCell(1).getStringCellValue().toLowerCase().equals(password.toLowerCase())) {
                double accessLevel = sheet.getRow(currentRow).getCell(2).getNumericCellValue();
                System.out.println(accessLevel);
                return accessLevel;
            }
        }
        currentRow++;
    }
    return 4.0;
}

}

Это файл .java с именем loginScreen

EventHandler<ActionEvent> loginClicked = new EventHandler<ActionEvent>() {
        public void handle(ActionEvent event) {
            double userFound =  0.0;
            try {
                userFound = applicationSettings.lookupUser(usernameField.getText(), passwordField.getText());
            } catch (IOException e) {
                e.printStackTrace();
            }//END of Try/Catch
            if(userFound == 1.0) { //1 is Admin Access
                //TODO: Implement Login
                System.out.println("Admin Login");
                errorLabel.setVisible(false);

            }else if(userFound == 2.0){ //2 is Elevated Access
                //TODO: Elevated Access
                System.out.println("Elevated Login");
                errorLabel.setVisible(false);

            }else if(userFound == 3.0){ 
                //TODO: Basic Access
                System.out.println("Basic Login");
                errorLabel.setVisible(false);
            }else{//Show Error
                errorLabel.setVisible(true);
                //TODO: Show Error
            }//End If Statement
        }

    };

Мой файл Excel в основном структурирован так:

NAME    PASSWORD    ACCESS LEVEL

Так что для моего логина это будет выглядеть так:

Trey Carey  March3199;  1

Это никуда не денется, кроме церкви, где на самом деле ничего не происходит, кроме автоматизации некоторых утомительных задач, поэтому безопасность не является проблемой.

Кроме того, если я все-таки смогу почистить некоторые из этих операторов if и мой код в целом, я буду признателен за любые советы или помощь!

1 Ответ

0 голосов
/ 01 октября 2018

Редактировать 2 13.11.2018: эта ошибка была официально исправлена ​​в JavaFX 12, перенесена в JDK8 и одобрена для переноса в JFX 11. Вы можете просмотреть отчет об ошибке, чтобы узнать больше информации об этом. JDK-8211304 Вот ссылка на внесенные изменения. openjfx Я лично не уверен в текущей ситуации с лицензией JDK8, поэтому я бы посоветовал перейти на новейшие OpenJDK и OpenJFX, если это возможно.

Привет, у меня та же проблема, что и у вас, и я могу постоянно ее воспроизводить.Проблема появляется для меня на JavaFX на MacOS 10.14.Вы можете просто создать приложение с помощью кнопки, которая открывает второй этап.Если вы вызываете stage.showAndWait () (может быть связано с чем-либо, что содержит поток) на втором этапе, а затем переключаете фокус между различными приложениями (я просто alt-tab между моим приложением JavaFX и Safari), приложение JavaFX падает.Также воспроизводимо в любой IDE.

На самом деле я нашел отчет об ошибке в трекере ошибок OpenJDK / OpenJFX, но в данный момент ничего особенного не происходит. JDK-8211137 Mac: сбой JVM из-за необработанного исключения

У меня пока нет решения, так как у меня возникают проблемы с определением точной проблемы, но я нашел обходной путь, который работает вмой конкретный случай.

Редактировать: Если я использую "stage.show ()", я получаю только ошибку, но при использовании stage.showAndWait () или чего-либо, что делает какой-то цикл ожидания, приложение полностью падает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...