Для лучшего объяснения это здесь.Недавно я начал использовать Gluon для создания мобильных приложений, и у меня возникают некоторые проблемы при создании файла MainMenu.java.Я не могу настроить метод init и продолжаю получать сообщения об ошибках типа «Строка не может быть преобразована в этап» и не знаю, как это исправить.Я был бы очень признателен за помощь, я не уверен, как поступить.Я получаю сообщение об ошибке:
error: incompatible types: invalid constructor reference
addViewFactory(HOME_VIEW, LoginPage::new);
^
constructor LoginPage in class LoginPage cannot be applied to given types required: Stage
found: no arguments
reason: actual and formal argument lists differ in length
Я пытался изменить метод addViewFactory, но ничего не получилось, включая размещение primaryStage внутри last ().
Это файл, который я имеюпроблема с
public class AlexDemo extends MobileApplication {
public static final String LOGIN_VIEW = HOME_VIEW;
@Override
public void init() {
addViewFactory(LOGIN_VIEW, () -> new LoginPage(LOGIN_VIEW));
}
@Override
public void postInit(Scene scene) {
Swatch.BLUE.assignTo(scene);
((Stage) scene.getWindow()).getIcons().add(new Image(AlexDemo.class.getResourceAsStream("/icon.png")));
}
}
Это страница входа в систему с работающим кодом (некоторые из них показывали, что у меня слишком много кнопок, ярлыков и т. д.)
public class LoginPage extends View {
private Parent root;
public LoginPage(Stage primaryStage) {
Scene scene = new Scene(root, 500, 800);
BorderPane root = new BorderPane();
//For the label displaying "Sign In" to prompt the user
VBox login = new VBox();
Label statement = new Label("Sign In");
statement.setFont(Font.font("Verdana", FontWeight.BOLD, 13));
//HBox for the email the user wants to sign in with
HBox firstUserPrompt = new HBox();
Label email = new Label("Username/\nEmail: ");
email.setFont(Font.font("Verdana", 13));
firstUserPrompt.setAlignment(Pos.CENTER);
TextField userPrompt = new TextField();
}
@Override
protected void updateAppBar(AppBar appBar) {
appBar.setTitleText("Book App");
appBar.setSpacing(115);
}
}
Это страница MainMenuпо нажатию кнопки
public class MainMenu extends View{
private Parent prevPage;
private Stage stage;
public MainMenu(Parent LoginPage, Stage stage){
this.prevPage = LoginPage;
this.stage = stage;
Label statement = new Label("Sign In");
}
Это больше не позволяет мне запускать приложение после создания файла MainMenu.java, и оно происходит в первом фрагменте кода.