This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center。
7年前关闭。
我有一个简单的示例,使用MVC模型检查用户的登录。
LoginModel:
}
登录视图:
}
}
LoginControl:
}
LoginMain:
}
但是当我运行主类时,只有用户名:,然后输入用户并停止。
我不知道哪里出错了。
你能帮助我吗。
7年前关闭。
我有一个简单的示例,使用MVC模型检查用户的登录。
LoginModel:
public class LoginModel {
private String username;
private String password;
public LoginModel()
{
}
/**
* @return the username
*/
public String getUsername() {
return username;
}
/**
* @param username the username to set
*/
public void setUsername(String username) {
this.username = username;
}
/**
* @return the password
*/
public String getPassword() {
return password;
}
/**
* @param password the password to set
*/
public void setPassword(String password) {
this.password = password;
}
}
登录视图:
public class LoginView {
LoginModel user;
//Ham khoi tao cho LoginView
public LoginView(LoginModel user)
{
this.user=user;
}
public void showMessage(String msg)
{
System.out.println(msg);
}
public void getUserInfo()
{
try
{
DataInputStream input=new DataInputStream(System.in);
System.out.println("Username:");
user.setUsername(input.readUTF());
System.out.println("Password:");
user.setPassword(input.readUTF());
input.close();
}
catch(IOException e)
{
System.out.println(e);
}
}
}
LoginControl:
public class LoginControl {
LoginModel user;
LoginView view;
public LoginControl(LoginModel user,LoginView view)
{
this.user=user;
this.view=view;
while(true)
{
view.getUserInfo();
if(checkLogin())
{
view.showMessage("Success");
}
else
{
view.showMessage("Wrong username or password");
}
}
}
private boolean checkLogin()
{
if((user.getUsername().equals("sa"))&&(user.getPassword().equals("sa")))
{
return true;
}
return false;
}
}
LoginMain:
public class LoginMVC {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
LoginModel user=new LoginModel();
LoginView view=new LoginView(user);
LoginControl control=new LoginControl(user, view);
}
}
但是当我运行主类时,只有用户名:,然后输入用户并停止。
我不知道哪里出错了。
你能帮助我吗。
最佳答案
我不确定为什么DataInputStream
无法正常工作,我建议使用Scanner从getUserInfo
方法中的控制台获取输入。
Scanner scanner = new Scanner(System.in);
System.out.println("Username:");
user.setUsername(scanner.nextLine());
System.out.println("Password:");
user.setPassword(scanner.nextLine());
scanner.close();
关于java - 使用MVC Java创建简单的示例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13873847/