使用Java编写登录界面的注意事项
使用Java编写登录界面,需要考虑到以下几个方面:
1. 界面布局:登录界面需要美观,布局要合理。可以使用Swing、JavaFX等GUI工具来实现。同时,需要考虑到不同分辨率和屏幕大小下的适配问题。
2. 用户数据验证:用户在登录界面输入用户名和密码后,需要对这些数据进行验证。验证应该包括数据格式的验证(比如,用户名长度、密码强度等),以及校验用户身份是否合法。
3. 安全性:登录界面需要考虑到网络安全性。比如,需要对用户输入的数据进行加密处理,防止被黑客截获。同时,需要采取一定的安全措施,比如防止重复登录、登录失败次数过多等。
使用Java编写登录界面的关键代码实现
下面是使用Java编写登录界面的关键代码实现:
1. 界面布局:使用JavaFX实现显示窗口以及窗口中的控件——用户名输入框、密码输入框、登录按钮和注册按钮。
```Java
public class Login extends Application {
private Stage stage;
@Override
public void start(Stage primaryStage) throws Exception {
stage = primaryStage;
BorderPane root = new BorderPane();
Scene scene = new Scene(root, 600, 400);
TextField usernameInput = new TextField();
PasswordField passwordInput = new PasswordField();
Button loginButton = new Button("登录");
Button registerButton = new Button("注册");
VBox vbox = new VBox();
vbox.getChildren().addAll(new Label("用户名:"), usernameInput, new Label("密码:"), passwordInput, loginButton, registerButton);
vbox.setSpacing(10);
vbox.setAlignment(Pos.CENTER);
root.setCenter(vbox);
primaryStage.setScene(scene);
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
```
2. 用户数据验证:使用正则表达式进行格式验证,使用数据库进行身份验证。
```Java
public class UserDatabase {
private Statement statement;
public UserDatabase() throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testDB", "root", "123456");
statement = conn.createStatement();
}
// 用户登录验证
public boolean login(String username, String password) throws SQLException {
ResultSet resultSet = statement.executeQuery("SELECT * FROM user WHERE username = '" + username + "' and password = '" + password + "'");
if (resultSet.next()) {
return true;
}
return false;
}
// 用户注册
public boolean register(String username, String password) throws SQLException {
if(username.length() < 5 || password.length() < 6)
return false;
ResultSet resultSet = statement.executeQuery("select * from user where username='" + username + "'");
if (resultSet.next()) {
return false;
}
statement.executeUpdate("insert into user (username,password) values('" + username + "','" + password + "')");
return true;
}
}
public class LoginController {
@FXML
private TextField usernameInput;
@FXML
private PasswordField passwordInput;
public void handleLogin(ActionEvent actionEvent) throws SQLException, ClassNotFoundException {
String username = usernameInput.getText().trim();
String password = passwordInput.getText().trim();
if (username.isEmpty() || password.isEmpty()) {
new Alert(Alert.AlertType.ERROR, "请输入用户名和密码").showAndWait();
return;
}
UserDatabase userDatabase = new UserDatabase();
if (userDatabase.login(username, password)) {
new Alert(Alert.AlertType.INFORMATION, "登录成功").showAndWait();
} else {
new Alert(Alert.AlertType.ERROR, "用户名或密码不正确").showAndWait();
}
}
}
```
使用Java编写登录界面的完整代码实现
下面是使用Java编写登录界面的完整代码实现:
```Java
public class Login extends Application {
private Stage stage;
@Override
public void start(Stage primaryStage) throws Exception {
stage = primaryStage;
BorderPane root = new BorderPane();
Scene scene = new Scene(root, 600, 400);
TextField usernameInput = new TextField();
PasswordField passwordInput = new PasswordField();
Button loginButton = new Button("登录");
Button registerButton = new Button("注册");
VBox vbox = new VBox();
vbox.getChildren().addAll(new Label("用户名:"), usernameInput, new Label("密码:"), passwordInput, loginButton, registerButton);
vbox.setSpacing(10);
vbox.setAlignment(Pos.CENTER);
root.setCenter(vbox);
primaryStage.setScene(scene);
primaryStage.show();
loginButton.setOnAction(new EventHandler() {
@Override
public void handle(ActionEvent actionEvent) {
try {
FXMLLoader loader = new FXMLLoader(Login.class.getResource("login.fxml"));
Parent root = loader.load();
Scene scene = new Scene(root, 600, 400);
stage.setScene(scene);
stage.show();
} catch (IOException e) {
e.printStackTrace();
}
}
});
registerButton.setOnAction(new EventHandler() {
@Override
public void handle(ActionEvent actionEvent) {
TextInputDialog dialog = new TextInputDialog();
dialog.setTitle("注册");
dialog.setHeaderText(null);
dialog.setContentText("请输入用户名和密码(用户名长度不少于5位,密码长度不少于6位):");
Optional result = dialog.showAndWait();
if (result.isPresent()) {
String[] values = result.get().split(",");
String username = values[0];
String password = values[1];
UserDatabase userDatabase;
try {
userDatabase = new UserDatabase();
if (userDatabase.register(username, password)) {
new Alert(Alert.AlertType.INFORMATION, "注册成功").showAndWait();
} else {
new Alert(Alert.AlertType.ERROR, "用户名已存在,注册失败").showAndWait();
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
});
}
public static void main(String[] args) {
launch(args);
}
}
public class LoginController {
@FXML
private TextField usernameInput;
@FXML
private PasswordField passwordInput;
public void handleLogin(ActionEvent actionEvent) throws SQLException, ClassNotFoundException {
String username = usernameInput.getText().trim();
String password = passwordInput.getText().trim();
if (username.isEmpty() || password.isEmpty()) {
new Alert(Alert.AlertType.ERROR, "请输入用户名和密码").showAndWait();
return;
}
UserDatabase userDatabase = new UserDatabase();
if (userDatabase.login(username, password)) {
new Alert(Alert.AlertType.INFORMATION, "登录成功").showAndWait();
} else {
new Alert(Alert.AlertType.ERROR, "用户名或密码不正确").showAndWait();
}
}
}
public class UserDatabase {
private Statement statement;
public UserDatabase() throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/testDB", "root", "123456");
statement = conn.createStatement();
}
// 用户登录验证
public boolean login(String username, String password) throws SQLException {
ResultSet resultSet = statement.executeQuery("SELECT * FROM user WHERE username = '" + username + "' and password = '" + password + "'");
if (resultSet.next()) {
return true;
}
return false;
}
// 用户注册
public boolean register(String username, String password) throws SQLException {
if(username.length() < 5 || password.length() < 6)
return false;
ResultSet resultSet = statement.executeQuery("select * from user where username='" + username + "'");
if (resultSet.next()) {
return false;
}
statement.executeUpdate("insert into user (username,password) values('" + username + "','" + password + "')");
return true;
}
}
```
本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/javapeixuny3.html
郑重声明:
本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
我们不承担任何技术及版权问题,且不对任何资源负法律责任。
如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。
如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!