java - 即使代码在 javafx 中运行,Stage 也不会打开
问题描述
所以,我做了这个简单的代码,它没有显示任何错误或警告,但由于某种原因,当我按下运行时,它没有打开一个窗口。我不确定哪里出错了。代码的重点是根据谁尝试登录来显示一个简单的文本。我稍后将对其进行扩展并向其中添加新内容,但现在它只需要按原样运行即可。这是代码:
public class LogIn extends Application {
Users Cashier = new Users("Filan", "Fisteku", "ffisteku@gmail.com", 500, 1, "0691234567", "15/01/2000", "open");
Users Manager = new Users("Mario", "Rossi", "mrossi@gmail.com", 750, 2, "0681234567", "09/08/1995", "lararossi");
Users Administrator = new Users("John", "Doe", "jdoe1980@gmail.com", 1000, 3, "0697654321", "11/11/1980",
"password");
public void start(final Stage stage) {
// Creating nodes
final TextField txtField = new TextField();
final PasswordField pwField = new PasswordField();
final Button button = new Button("LOGIN");
button.setTranslateX(250);
button.setTranslateY(75);
// Creating labels
final Label label1 = new Label("Email: ");
final Label label2 = new Label("Password: ");
// Setting the message with read data
final Text text = new Text("");
Font font = Font.font("Comic Sans", FontWeight.BOLD, FontPosture.REGULAR, 10);
text.setFont(font);
text.setTranslateX(15);
text.setTranslateY(125);
text.setFill(Color.BLACK);
// Displaying the message
button.setOnAction(new EventHandler() {
public void handle(Event e) {
// Retrieving data
final String email = txtField.getText();
final String pw = pwField.getText();
if (email.equals(Cashier.email) && pw.equals(Cashier.password)) {
text.setText("Hello " + Cashier.name + " " + Cashier.lastname + ". Welcome!");
}
if (email.equals(Manager.email) && pw.equals(Manager.password)) {
text.setText("Hello " + Manager.name + " " + Manager.lastname + ". Welcome!");
}
if (email.equals(Administrator.email) && pw.equals(Administrator.password)) {
text.setText("Hello " + Administrator.name + " " + Administrator.lastname + ". Welcome!");
}
// Adding labels for nodes
HBox box = new HBox(5);
box.setPadding(new Insets(25, 5, 5, 50));
box.getChildren().add(label1);
box.getChildren().add(txtField);
box.getChildren().add(label2);
box.getChildren().add(pwField);
Group root = new Group();
root.getChildren().add(box);
// Setting the stage
Scene scene = new Scene(root, 500, 250, Color.SILVER);
stage.setTitle("LogIn Site for Tech Store");
stage.setScene(scene);
stage.show();
}
}
);
;
;
;
;
}
public static void main(String args[]) {
launch(args);
}
}
解决方案
你的代码,
// Setting the stage
Scene scene = new Scene(root, 500, 250, Color.SILVER);
stage.setTitle("LogIn Site for Tech Store");
stage.setScene(scene);
stage.show();
应该出来了EventHandler
method
。
推荐阅读
- php - 通过 href 限制查询中的项目以进行分页
- html - 无法将表头和搜索框固定在表内
- c - 在 C 中打印出一个没有预定长度的数组
- database - 尝试运行 add-migration 时出现“ScriptHalted”
- generics - 将通用约束设置为多种类型并设置默认值
- ios - 我想沿着半椭圆路径移动一个 SKNode
- django - Django 的本地文件目录
- react-native - 在 Windows 中构建反应本机应用程序时出现此错误
- c# - 为什么 Blazor 不会路由到剃刀库中的组件?
- mysql - sqlalchemy.exc.NoReferencedColumnError:无法初始化表 'post' 上 ForeignKey 'title.id' 的目标列