在Java中登录成功后跳转到主页面,需要使用GUI框架,比如Swing或JavaFX。以下是使用JavaFX框架实现登录成功后跳转到主页面的示例代码:
```
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class Main extends Application {
private TextField usernameField;
private PasswordField passwordField;
@Override
public void start(Stage primaryStage) throws Exception {
// 创建登录页面
GridPane loginPane = new GridPane();
loginPane.setAlignment(Pos.CENTER);
loginPane.setHgap(10);
loginPane.setVgap(10);
loginPane.setPadding(new Insets(25, 25, 25, 25));
Label usernameLabel = new Label("用户名:");
loginPane.add(usernameLabel, 0, 0);
usernameField = new TextField();
loginPane.add(usernameField, 1, 0);
Label passwordLabel = new Label("密码:");
loginPane.add(passwordLabel, 0, 1);
passwordField = new PasswordField();
loginPane.add(passwordField, 1, 1);
Button loginButton = new Button("登录");
HBox hbLoginButton = new HBox(10);
hbLoginButton.setAlignment(Pos.BOTTOM_RIGHT);
hbLoginButton.getChildren().add(loginButton);
loginPane.add(hbLoginButton, 1, 2);
Label messageLabel = new Label();
loginPane.add(messageLabel, 1, 3);
// 登录验证
loginButton.setOnAction(event -> {
String username = usernameField.getText();
String password = passwordField.getText();
if (username.equals("admin") && password.equals("123456")) {
// 登录成功,跳转到主页面
primaryStage.setScene(createMainScene());
} else {
// 登录失败,显示错误信息
messageLabel.setText("用户名或密码错误!");
}
});
// 设置登录页面的场景
Scene loginScene = new Scene(loginPane, 400, 300);
primaryStage.setScene(loginScene);
primaryStage.show();
}
private Scene createMainScene() {
// 创建主页面
StackPane root = new StackPane();
Button logoutButton = new Button("退出登录");
root.getChildren().add(logoutButton);
// 退出登录的事件处理
logoutButton.setOnAction(event -> {
Stage stage = (Stage) logoutButton.getScene().getWindow();
stage.setScene(createLoginScene());
});
// 设置主页面的场景
Scene scene = new Scene(root, 400, 300);
return scene;
}
private Scene createLoginScene() {
// 创建登录页面
GridPane loginPane = new GridPane();
loginPane.setAlignment(Pos.CENTER);
loginPane.setHgap(10);
loginPane.setVgap(10);
loginPane.setPadding(new Insets(25, 25, 25, 25));
Label usernameLabel = new Label("用户名:");
loginPane.add(usernameLabel, 0, 0);
usernameField = new TextField();
loginPane.add(usernameField, 1, 0);
Label passwordLabel = new Label("密码:");
loginPane.add(passwordLabel, 0, 1);
passwordField = new PasswordField();
loginPane.add(passwordField, 1, 1);
Button loginButton = new Button("登录");
HBox hbLoginButton = new HBox(10);
hbLoginButton.setAlignment(Pos.BOTTOM_RIGHT);
hbLoginButton.getChildren().add(loginButton);
loginPane.add(hbLoginButton, 1, 2);
Label messageLabel = new Label();
loginPane.add(messageLabel, 1, 3);
// 登录验证
loginButton.setOnAction(event -> {
String username = usernameField.getText();
String password = passwordField.getText();
if (username.equals("admin") && password.equals("123456")) {
// 登录成功,跳转到主页面
Stage stage = (Stage) loginButton.getScene().getWindow();
stage.setScene(createMainScene());
} else {
// 登录失败,显示错误信息
messageLabel.setText("用户名或密码错误!");
}
});
// 设置登录页面的场景
Scene loginScene = new Scene(loginPane, 400, 300);
return loginScene;
}
public static void main(String[] args) {
launch(args);
}
}
```
上述代码中,首先创建了登录页面的场景,并将其设置为当前舞台的场景。然后,为登录页面上的登录按钮添加了事件处理。当按钮被点击时,获取用户名和密码,并进行登录验证。如果登录成功,创建主页面的场景并将其设置为当前舞台的场景;如果登录失败,显示错误信息。在主页面中,为退出登录的按钮添加了事件处理,当按钮被点击时,创建登录页面的场景并将其设置为当前舞台的场景。