package cn.edu.ynu.sei.atm.client.ui;
import cn.edu.ynu.sei.atm.interfaceDef.IVerification;
import com.swtdesigner.SWTResourceManager;
import java.rmi.Naming;
import java.rmi.RemoteException;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Text; /**
* 密码输入面板
* @author 88250
*/
public class PwdInputComposite extends Composite
{
// ----- 密码键盘按钮 ----- //
private Label l4;
private Label l1;
private Label l2;
private Label l3;
private Label l9;
private Label l7;
private Label l0;
private Label l6;
private Label l5;
private Label l8;
// ---------------------- //
/**
* 确定按钮标签
*/
private Label confirmLbl;
* 清除按钮标签
*/
private Label clearLbl;
* 密码输入框
*/
private Text pwdText;
* 验证身份接口实例
*/
private IVerification verification = null;
* 父窗口容器
*/
private Composite parent = null;
/**
* 创建密码输入面板容器
* @param parent 父窗口容器
*/
public PwdInputComposite(Composite parent)
{
super(parent, SWT.NONE);
this.parent = parent;
// 取得远程服务对象
try
{
verification = (IVerification) Naming.lookup(LoginInterface.serviceAddr + "Verification");
}
catch (RemoteException re)
{
re.printStackTrace();
MessageBox exitDlg = new MessageBox(parent.getShell());
exitDlg.setText("网络连接出现问题....");
exitDlg.setMessage("不能连接到服务器!");
exitDlg.open();
System.exit(0);
}
catch (Exception e)
{
e.printStackTrace();
}
createContents();
}
* 创建密码输入面板内含控件
*/
private void createContents()
{
createPwdButtons();
pwdText = new Text(this, SWT.BORDER);
pwdText.addModifyListener(new ModifyListener()
{
public void modifyText(ModifyEvent arg0)
{
if (pwdText.getCharCount() != 0)
{// 设置“清除”按钮可用
clearLbl.setBackgroundImage(SWTResourceManager.getImage(
PwdInputComposite.class, "loginImages/clear.JPG"));
clearLbl.setEnabled(true);
}
else
{// 设置“清除”按钮不可用
clearLbl.setBackgroundImage(SWTResourceManager.getImage(
PwdInputComposite.class,
"loginImages/clearDisable.JPG"));
clearLbl.setEnabled(false);
}
{
if (pwdText.getCharCount() == verification.getPwdLength())
{// 设置“确定”按钮可用
confirmLbl.setBackgroundImage(SWTResourceManager
.getImage(PwdInputComposite.class,
"loginImages/confirm.JPG"));
confirmLbl.setEnabled(true);
}
else
{// 设置“确定”按钮不可用
confirmLbl.setBackgroundImage(SWTResourceManager
.getImage(PwdInputComposite.class,
"loginImages/confirmDisable.JPG"));
confirmLbl.setEnabled(false);
}
}
catch (RemoteException re)
{
MessageBox exitDlg = new MessageBox(parent.getShell());
exitDlg.setText("网络连接出现问题....");
exitDlg.setMessage("不能连接到服务器,系统将退出!");
exitDlg.open();
System.exit(0);
re.printStackTrace();
}
catch (Exception e)
{
e.printStackTrace();
}
}
});
pwdText.setBounds(6, 4, 109, 25);
try
{
pwdText.setTextLimit(verification.getPwdLength());
}
catch (RemoteException re)
{
re.printStackTrace();
}
catch (Exception e)
{
e.printStackTrace();
}
clearLbl.addMouseListener(new MouseAdapter()
{
public void mouseDown(MouseEvent e)
{
pwdText.setText("");
}
});
clearLbl.setBackgroundImage(SWTResourceManager.getImage(
PwdInputComposite.class, "loginImages/clearDisable.JPG"));
clearLbl.setBounds(44, 149, 33, 33);
confirmLbl.setBackgroundImage(SWTResourceManager.getImage(
PwdInputComposite.class, "loginImages/confirmDisable.JPG"));
confirmLbl.setBounds(82, 149, 33, 33);
confirmLbl.setEnabled(false);
}
* 创建密码按钮
*/
private void createPwdButtons()
{
l8 = new Label(this, SWT.BORDER);
l8.addMouseListener(new MouseAdapter()
{
public void mouseDown(MouseEvent e)
{
pwdText.append("8");
}
});
l8.setBackgroundImage(SWTResourceManager.getImage(
PwdInputComposite.class, "loginImages/8.JPG"));
l8.setBounds(82, 111, 32, 32);
l5.addMouseListener(new MouseAdapter()
{
public void mouseDown(MouseEvent e)
{
pwdText.append("5");
}
});
l5.setBackgroundImage(SWTResourceManager.getImage(
PwdInputComposite.class, "loginImages/5.JPG"));
l5.setBounds(82, 73, 32, 32);
l6.addMouseListener(new MouseAdapter()
{
public void mouseDown(MouseEvent e)
{
pwdText.append("6");
}
});
l6.setBackgroundImage(SWTResourceManager.getImage(
PwdInputComposite.class, "loginImages/6.JPG"));
l6.setBounds(6, 111, 32, 32);
l0.addMouseListener(new MouseAdapter()
{
public void mouseDown(MouseEvent e)
{
pwdText.append("0");
}
});
l0.setBackgroundImage(SWTResourceManager.getImage(
PwdInputComposite.class, "loginImages/0.JPG"));
l0.setBounds(6, 35, 32, 32);
l7.addMouseListener(new MouseAdapter()
{
public void mouseDown(MouseEvent e)
{
pwdText.append("7");
}
});
l7.setBackgroundImage(SWTResourceManager.getImage(
PwdInputComposite.class, "loginImages/7.JPG"));
l7.setBounds(44, 111, 32, 32);
l9.addMouseListener(new MouseAdapter()
{
public void mouseDown(MouseEvent e)
{
pwdText.append("9");
}
});
l9.setBackgroundImage(SWTResourceManager.getImage(
PwdInputComposite.class, "loginImages/9.JPG"));
l9.setBounds(6, 149, 32, 32);
l3.addMouseListener(new MouseAdapter()
{
public void mouseDown(MouseEvent e)
{
pwdText.append("3");
}
});
l3.setBackgroundImage(SWTResourceManager.getImage(
PwdInputComposite.class, "loginImages/3.JPG"));
l3.setBounds(6, 73, 32, 32);
l2.addMouseListener(new MouseAdapter()
{
public void mouseDown(MouseEvent e)
{
pwdText.append("2");
}
});
l2.setBackgroundImage(SWTResourceManager.getImage(
PwdInputComposite.class, "loginImages/2.JPG"));
l2.setBounds(82, 35, 32, 32);
l1.addMouseListener(new MouseAdapter()
{
public void mouseDown(MouseEvent e)
{
pwdText.append("1");
}
});
l1.setBackgroundImage(SWTResourceManager.getImage(
PwdInputComposite.class, "loginImages/1.JPG"));
l1.setBounds(44, 35, 32, 32);
l4.addMouseListener(new MouseAdapter()
{
public void mouseDown(MouseEvent e)
{
pwdText.append("4");
}
});
l4.setBackgroundImage(SWTResourceManager.getImage(
PwdInputComposite.class, "loginImages/4.JPG"));
l4.setBounds(44, 73, 32, 32);
}
* 设置密码输入面板容器内含控件的可见性
* @param b 可见性
*/
public void setContentsVisible(boolean b)
{
l0.setVisible(b);
l1.setVisible(b);
l2.setVisible(b);
l3.setVisible(b);
l4.setVisible(b);
l5.setVisible(b);
l6.setVisible(b);
l7.setVisible(b);
l8.setVisible(b);
l9.setVisible(b);
confirmLbl.setVisible(b);
clearLbl.setVisible(b);
pwdText.setVisible(b);
}
* 清空密码输入框
*/
public void clearPwdText()
{
pwdText.setText("");
}
* 返回密码
* @return 密码
*/
public String getPwdText()
{
return pwdText.getText();
}
* 返回确定按钮
* @return 确定按钮
*/
public Label getConfirmLbl()
{
return confirmLbl;
}
{
super.dispose();
}
{
// Disable the check that prevents subclassing of SWT components
}
}
import com.swtdesigner.SWTResourceManager;
import java.rmi.Naming;
import java.rmi.RemoteException;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Text; /**
* 密码输入面板
* @author 88250
*/
public class PwdInputComposite extends Composite
{
// ----- 密码键盘按钮 ----- //
private Label l4;
private Label l1;
private Label l2;
private Label l3;
private Label l9;
private Label l7;
private Label l0;
private Label l6;
private Label l5;
private Label l8;
// ---------------------- //
/**
* 确定按钮标签
*/
private Label confirmLbl;
/**
* 清除按钮标签
*/
private Label clearLbl;
/**
* 密码输入框
*/
private Text pwdText;
/**
* 验证身份接口实例
*/
private IVerification verification = null;
/**
* 父窗口容器
*/
private Composite parent = null;
/**
* 创建密码输入面板容器
* @param parent 父窗口容器
*/
public PwdInputComposite(Composite parent)
{
super(parent, SWT.NONE);
this.parent = parent;
// 取得远程服务对象
try
{
verification = (IVerification) Naming.lookup(LoginInterface.serviceAddr + "Verification");
}
catch (RemoteException re)
{
re.printStackTrace();
MessageBox exitDlg = new MessageBox(parent.getShell());
exitDlg.setText("网络连接出现问题....");
exitDlg.setMessage("不能连接到服务器!");
exitDlg.open();
System.exit(0);
}
catch (Exception e)
{
e.printStackTrace();
}
createContents();
}
/**
* 创建密码输入面板内含控件
*/
private void createContents()
{
createPwdButtons();
pwdText = new Text(this, SWT.BORDER);
pwdText.addModifyListener(new ModifyListener()
{
public void modifyText(ModifyEvent arg0)
{
if (pwdText.getCharCount() != 0)
{// 设置“清除”按钮可用
clearLbl.setBackgroundImage(SWTResourceManager.getImage(
PwdInputComposite.class, "loginImages/clear.JPG"));
clearLbl.setEnabled(true);
}
else
{// 设置“清除”按钮不可用
clearLbl.setBackgroundImage(SWTResourceManager.getImage(
PwdInputComposite.class,
"loginImages/clearDisable.JPG"));
clearLbl.setEnabled(false);
}
try
{
if (pwdText.getCharCount() == verification.getPwdLength())
{// 设置“确定”按钮可用
confirmLbl.setBackgroundImage(SWTResourceManager
.getImage(PwdInputComposite.class,
"loginImages/confirm.JPG"));
confirmLbl.setEnabled(true);
}
else
{// 设置“确定”按钮不可用
confirmLbl.setBackgroundImage(SWTResourceManager
.getImage(PwdInputComposite.class,
"loginImages/confirmDisable.JPG"));
confirmLbl.setEnabled(false);
}
}
catch (RemoteException re)
{
MessageBox exitDlg = new MessageBox(parent.getShell());
exitDlg.setText("网络连接出现问题....");
exitDlg.setMessage("不能连接到服务器,系统将退出!");
exitDlg.open();
System.exit(0);
re.printStackTrace();
}
catch (Exception e)
{
e.printStackTrace();
}
}
});
pwdText.setBounds(6, 4, 109, 25);
// 获取限定的密码长度
try
{
pwdText.setTextLimit(verification.getPwdLength());
}
catch (RemoteException re)
{
re.printStackTrace();
}
catch (Exception e)
{
e.printStackTrace();
}
pwdText.setEditable(
false);pwdText.setEchoChar(
'*');clearLbl
= new Label(this, SWT.BORDER);clearLbl.addMouseListener(new MouseAdapter()
{
public void mouseDown(MouseEvent e)
{
pwdText.setText("");
}
});
clearLbl.setBackgroundImage(SWTResourceManager.getImage(
PwdInputComposite.class, "loginImages/clearDisable.JPG"));
clearLbl.setBounds(44, 149, 33, 33);
confirmLbl
= new Label(this, SWT.BORDER);confirmLbl.setBackgroundImage(SWTResourceManager.getImage(
PwdInputComposite.class, "loginImages/confirmDisable.JPG"));
confirmLbl.setBounds(82, 149, 33, 33);
confirmLbl.setEnabled(false);
}
/**
* 创建密码按钮
*/
private void createPwdButtons()
{
l8 = new Label(this, SWT.BORDER);
l8.addMouseListener(new MouseAdapter()
{
public void mouseDown(MouseEvent e)
{
pwdText.append("8");
}
});
l8.setBackgroundImage(SWTResourceManager.getImage(
PwdInputComposite.class, "loginImages/8.JPG"));
l8.setBounds(82, 111, 32, 32);
l5
= new Label(this, SWT.BORDER);l5.addMouseListener(new MouseAdapter()
{
public void mouseDown(MouseEvent e)
{
pwdText.append("5");
}
});
l5.setBackgroundImage(SWTResourceManager.getImage(
PwdInputComposite.class, "loginImages/5.JPG"));
l5.setBounds(82, 73, 32, 32);
l6
= new Label(this, SWT.BORDER);l6.addMouseListener(new MouseAdapter()
{
public void mouseDown(MouseEvent e)
{
pwdText.append("6");
}
});
l6.setBackgroundImage(SWTResourceManager.getImage(
PwdInputComposite.class, "loginImages/6.JPG"));
l6.setBounds(6, 111, 32, 32);
l0
= new Label(this, SWT.SHADOW_IN | SWT.BORDER);l0.addMouseListener(new MouseAdapter()
{
public void mouseDown(MouseEvent e)
{
pwdText.append("0");
}
});
l0.setBackgroundImage(SWTResourceManager.getImage(
PwdInputComposite.class, "loginImages/0.JPG"));
l0.setBounds(6, 35, 32, 32);
l7
= new Label(this, SWT.BORDER);l7.addMouseListener(new MouseAdapter()
{
public void mouseDown(MouseEvent e)
{
pwdText.append("7");
}
});
l7.setBackgroundImage(SWTResourceManager.getImage(
PwdInputComposite.class, "loginImages/7.JPG"));
l7.setBounds(44, 111, 32, 32);
l9
= new Label(this, SWT.BORDER);l9.addMouseListener(new MouseAdapter()
{
public void mouseDown(MouseEvent e)
{
pwdText.append("9");
}
});
l9.setBackgroundImage(SWTResourceManager.getImage(
PwdInputComposite.class, "loginImages/9.JPG"));
l9.setBounds(6, 149, 32, 32);
l3
= new Label(this, SWT.BORDER);l3.addMouseListener(new MouseAdapter()
{
public void mouseDown(MouseEvent e)
{
pwdText.append("3");
}
});
l3.setBackgroundImage(SWTResourceManager.getImage(
PwdInputComposite.class, "loginImages/3.JPG"));
l3.setBounds(6, 73, 32, 32);
l2
= new Label(this, SWT.BORDER);l2.addMouseListener(new MouseAdapter()
{
public void mouseDown(MouseEvent e)
{
pwdText.append("2");
}
});
l2.setBackgroundImage(SWTResourceManager.getImage(
PwdInputComposite.class, "loginImages/2.JPG"));
l2.setBounds(82, 35, 32, 32);
l1
= new Label(this, SWT.BORDER);l1.addMouseListener(new MouseAdapter()
{
public void mouseDown(MouseEvent e)
{
pwdText.append("1");
}
});
l1.setBackgroundImage(SWTResourceManager.getImage(
PwdInputComposite.class, "loginImages/1.JPG"));
l1.setBounds(44, 35, 32, 32);
l4
= new Label(this, SWT.BORDER);l4.addMouseListener(new MouseAdapter()
{
public void mouseDown(MouseEvent e)
{
pwdText.append("4");
}
});
l4.setBackgroundImage(SWTResourceManager.getImage(
PwdInputComposite.class, "loginImages/4.JPG"));
l4.setBounds(44, 73, 32, 32);
}
/**
* 设置密码输入面板容器内含控件的可见性
* @param b 可见性
*/
public void setContentsVisible(boolean b)
{
l0.setVisible(b);
l1.setVisible(b);
l2.setVisible(b);
l3.setVisible(b);
l4.setVisible(b);
l5.setVisible(b);
l6.setVisible(b);
l7.setVisible(b);
l8.setVisible(b);
l9.setVisible(b);
confirmLbl.setVisible(b);
clearLbl.setVisible(b);
pwdText.setVisible(b);
}
/**
* 清空密码输入框
*/
public void clearPwdText()
{
pwdText.setText("");
}
/**
* 返回密码
* @return 密码
*/
public String getPwdText()
{
return pwdText.getText();
}
/**
* 返回确定按钮
* @return 确定按钮
*/
public Label getConfirmLbl()
{
return confirmLbl;
}
@Override
{
super.dispose();
}
@Override
{
// Disable the check that prevents subclassing of SWT components
}
}