用java使用对象输入/输出流完成用户注册登录界面,User类(用户名,密码)保存在工程文件夹下res\password.txt中 。使用消息框给出相关信息(自学JOptionPane的showMessageDialog方法的使用)
时间: 2024-02-28 21:54:25 浏览: 21
好的,我理解了你的问题。首先,我们需要创建一个`User`类来保存用户名和密码。
```java
import java.io.Serializable;
public class User implements Serializable {
private String username;
private String password;
public User(String username, String password) {
this.username = username;
this.password = password;
}
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
}
```
然后,我们可以创建一个注册登录界面,使用`JOptionPane`来显示相关信息。
```java
import java.io.*;
import javax.swing.*;
public class RegisterLogin {
public static void main(String[] args) {
String passwordFile = "res/password.txt";
User user = null;
int option = JOptionPane.showOptionDialog(null, "请选择操作类型", "注册/登录", JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE, null, new String[] { "注册", "登录" }, "登录");
if (option == JOptionPane.YES_OPTION) { // 注册
String username = JOptionPane.showInputDialog("请输入用户名");
String password = JOptionPane.showInputDialog("请输入密码");
user = new User(username, password);
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(passwordFile))) {
oos.writeObject(user);
JOptionPane.showMessageDialog(null, "注册成功!");
} catch (IOException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, "注册失败!");
}
} else { // 登录
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(passwordFile))) {
user = (User) ois.readObject();
String username = JOptionPane.showInputDialog("请输入用户名");
String password = JOptionPane.showInputDialog("请输入密码");
if (user.getUsername().equals(username) && user.getPassword().equals(password)) {
JOptionPane.showMessageDialog(null, "登录成功!");
} else {
JOptionPane.showMessageDialog(null, "用户名或密码错误!");
}
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null, "登录失败!");
}
}
}
}
```
在这个示例中,我们使用了对象输入/输出流来将`User`对象保存到文件中。如果选中了“注册”,我们会提示用户输入用户名和密码,然后将`User`对象写入到文件中。如果选中了“登录”,我们会从文件中读取`User`对象,并且提示用户输入用户名和密码进行验证。如果验证成功则提示“登录成功”,否则提示“用户名或密码错误”。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)