import java.io.*;
interface Mediator {
public abstract void createColleagues(String g,String u,String p,String o); //产生Mediator 所要管理的所有成员方法
public abstract void colleagueChanged(Colleague c); //各个成员Colleague调用的方法,向顾问“提出咨询”
}
interface Colleague
{public String value=null;
public abstract void setMediator(Mediator mediator); //用来告诉成员们“记住哦,顾问就是我,我就是顾问”
public abstract void setColleagueEnabled(boolean enabled);
}
class ColleagueButton implements Colleague //实现按钮的类
{public String value;
private Mediator mediator;
public ColleagueButton(String value)
{this.value=value;}
public void setMediator(Mediator mediator){ //保留Mediator 对象(Loginframe的对象实例)
this.mediator=mediator;}
public void setColleagueEnabled(boolean enabled){ //指示有效或无效
if(enabled) System.out.println("确定按钮呈可用示状态");
else System.out.println("确定按钮不可用");
}
}
class ColleagueTextField implements Colleague{ //用户名和密码两个文本框的类
public String value;
public ColleagueTextField(String value)
{
this.value=value;
}
private Mediator mediator;
public void setMediator(Mediator mediator){ //保留Mediator 对象(Loginframe的对象实例)
this.mediator=mediator;
}
public void setColleagueEnabled(boolean enabled){
if(enabled)
System.out.println("可以输入文本,显示白色");
else System.out.println("不能输入文本,灰色");
}
}
class ColleagueCheckbox implements Colleague{ //实现登录方式的类
private Mediator mediator;
public String value;
public ColleagueCheckbox(String value)
{this.value=value;
}
public void setMediator(Mediator mediator){ //保留Mediator 对象(Loginframe的对象实例)
this.mediator=mediator;
}
public void setColleagueEnabled(boolean enabled){
System.out.println(enabled?"可进入":"不可以进入");
}
}
class Login implements Mediator //实现我们的中介者功能的类
{
ColleagueCheckbox checkGuest;
ColleagueCheckbox checkLogin;
ColleagueTextField textUser;
ColleagueTextField textPass;
ColleagueButton ok;
public void createColleagues( String g,String u,String p,String o)
{ checkGuest=new ColleagueCheckbox(g);
checkLogin=new ColleagueCheckbox(g);
textUser=new ColleagueTextField(u);
textPass=new ColleagueTextField(p);
ok=new ColleagueButton(o);
}
public void colleagueChanged(Colleague c){
if(c==checkGuest){
if((checkGuest.value).equals("guest")) //Guest 模式
{
textUser.setColleagueEnabled(false);
textPass.setColleagueEnabled(false);
ok.setColleagueEnabled(true);
}
else // Login 模式
{
textUser.setColleagueEnabled(true);
userpassChanged();
}
}
else if(c==textUser||c==textPass){
userpassChanged();
}
else{ System.out.println("unknow");}
}
private void userpassChanged(){
if(textUser.value.length()>0){
textPass.setColleagueEnabled(true);
if(textPass.value.length()>0)
ok.setColleagueEnabled(true);
else ok.setColleagueEnabled(false);
}
else
{ textPass.setColleagueEnabled(false);
ok.setColleagueEnabled(false);
}
}
}
public class Mediater //主方法的类
{
public static void main(String args[])
{ Login lg=new Login();
System.out.println("输入信息:");
byte []box=new byte [1024];
byte []user=new byte[1024];
byte[]pass=new byte[1024];
byte[]ok=new byte[1];
System.out.print("请选择登录方式:");
try
{System.in.read(box);System.out.println();
lg.createColleagues((new String(box)).trim(),"","","");
lg.colleagueChanged(lg.checkGuest);
if(lg.checkGuest.value.equals("guest")){System.out.println("直接点击确定按钮进入系统");return;}
System.out.println("请输入用户名:");
System.in.read(user);System.out.println();
lg.createColleagues(new String(box).trim(),new String(user).trim(),"","");
lg.colleagueChanged( lg.textUser);
System.out.println("请输入密码");
System.in.read(pass);System.out.println();
lg.createColleagues(new String(box).trim(),new String(user).trim(),new String(pass).trim(),"");
lg.colleagueChanged( lg.textPass);
System.out.println("输入数字1进入系统");
System.in.read(ok);
lg.createColleagues(new String(box).trim(),new String(user).trim(),new String(pass).trim(),new String(ok).trim());
if(lg.ok.value.equals("1")){System.out.println("欢迎使用");}
else System.out.println("您选择了取消命令");
}
catch(Exception e){}
}
}
评论0