为什么不允许覆盖

时间:2018-06-19 06:46:24

标签: java javafx

我需要检查用户名和密码。如果用户名和密码正确>打开新的FXML

现在我如何打开新的FXML如果用户名和密码是正确的?

错误:此处不允许使用注释

注意:操作代码在我的另一个登录按钮类中。

package game;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

import java.sql.*;

public class db {

private Connection connection;
private PreparedStatement preparedStatement;

public db() throws Exception {
        Class.forName("com.mysql.cj.jdbc.Driver");
        String url = "jdbc:mysql://localhost:3306/riverraider";
        String user = "root";
        String pass = "146155";
        connection = DriverManager.getConnection(url,user,pass);
}



public void select(String username, String password) throws Exception {
    String sql = "SELECT * FROM user WHERE username = ? AND password = ?";
    PreparedStatement ps = connection.prepareStatement(sql);
    ps.setString(1,username);
    ps.setString(2, password);

    ResultSet result = ps.executeQuery();

    if (result.next()){

        @Override
        public void start(Stage primaryStage) throws Exception {
            Parent parent = FXMLLoader.load(getClass().getResource("/view/gameMenu.fxml"));
            Scene scene = new Scene(parent);
            primaryStage.setScene(scene);
            primaryStage.show();
        }


    }else {
        System.out.println("Incorect.");
    }
}

}

1 个答案:

答案 0 :(得分:1)

您的db类不是JavaFX Application类。

此类应与JavaFX Application的其余部分分开,并从外部调用。 select()还应返回boolean值,表明其是否成功。

public class MyApp extends Application {
    @Override
    public void start(Stage primaryStage) throws Exception {
        DB db = new DB();

        if (db.select("foo", "foopassword")) {
            Parent parent = FXMLLoader.load(getClass().getResource("/view/gameMenu.fxml"));
            Scene scene = new Scene(parent);
            primaryStage.setScene(scene);
            primaryStage.show();
        }
    }

    public static void main(String[] args)
    {
        launch(args);
    }
}

在调用数据库之前,您很可能已经打开了一个窗口,这样您就可以从用户那里获得用户名/密码。

您只需要自己创建一个新的Stage并以相同的方式加载FXML。