Ошибка подтверждения в NSEvent?
Спасибо, что нашли время, чтобы прочитать это. Я довольно новичок в 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 ответ
Редактировать 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 () или чего-либо, что делает какой-то цикл ожидания, приложение полностью падает.