现在的位置: 首页 > 综合 > 正文

ATM系统实现[6]——密码面板组件[00原创]

2012年09月01日 ⁄ 综合 ⁄ 共 8708字 ⁄ 字号 评论关闭
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);
        }

        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(
6410925);

    // 获取限定的密码长度
    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(
441493333);

    confirmLbl = new Label(this, SWT.BORDER);
    confirmLbl.setBackgroundImage(SWTResourceManager.getImage(
        PwdInputComposite.
class"loginImages/confirmDisable.JPG"));
    confirmLbl.setBounds(
821493333);
    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(
821113232);

    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(
82733232);

    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(
61113232);

    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(
6353232);

    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(
441113232);

    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(
61493232);

    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(
6733232);

    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(
82353232);

    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(
44353232);

    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(
44733232);
    }

    /**
     * 设置密码输入面板容器内含控件的可见性
     * 
@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
    public void dispose()
    {
    
super.dispose();
    }

    @Override
    protected void checkSubclass()
    {
    
// Disable the check that prevents subclassing of SWT components
    }
}

 

抱歉!评论已关闭.