技术中心

这里象征着我们的态度和能力

>Java Bean 事件处理(摸板)
作者:中国IT实验室    来源:中国IT实验室    发布时间:2012-01-28      浏览次数:5989
分享到:
欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入

/*
 * LoginEvent.java
 */

package beanTest;

import java.util.EventObject;

public class LoginEvent extends EventObject {

    private static final long serialVersionUID = 1L;

    private String userName;

    private String password;

    public LoginEvent(Object o, String userName, String password) {
        super(o);
        this.userName = userName;
        this.password = password;
    }

    public String getPassword() {
        return password;
    }

    public String getUserName() {
        return userName;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

}

/**
 * LoginListener.java
 */

package beanTest;

import java.util.EventListener;

/**
 * @author wuliqiang
 *
 */

public interface LoginListener extends EventListener {

    public void validateLogin(LoginEvent e);

}

/**
 * LoginBean.java
 */

package beanTest;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JLabel;

import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

/**
 * @author wuliqiang
 *
 */

public class LoginBean extends JPanel implements ActionListener {

    private static final long serialVersionUID = 1L;

    private JPasswordField textPassword;
    private JTextField textUsername;
    private JButton loginButton;

    private LoginListener loginListener;
    private LoginEvent loginEvent;

    public LoginBean() {
        super();
        setLayout(null);

        final JLabel loginNameLabel = new JLabel();
        loginNameLabel.setText("Login Name:");
        loginNameLabel.setBounds(82, 44, 70, 18);
        add(loginNameLabel);

        textUsername = new JTextField();
        textUsername.setBounds(176, 42, 108, 22);
        add(textUsername);

        final JLabel passwordLabel = new JLabel();
        passwordLabel.setText("Password:");
        passwordLabel.setBounds(82, 94, 70, 18);
        add(passwordLabel);

        textPassword = new JPasswordField();
        textPassword.setBounds(176, 92, 108, 22);
        add(textPassword);

        loginButton = new JButton();
        loginButton.setText("Login");
        loginButton.setBounds(140, 140, 77, 28);
        loginButton.addActionListener(this);
        add(loginButton);
    }

    public void actionPerformed(ActionEvent e) {
        
//         初始化 loginEvent

        loginEvent = new LoginEvent(loginButton, textUsername.getText(),
                new String(textPassword.getPassword()));
        fireLoginEvent(loginEvent);
    }

    public void addLoginListener(LoginListener loginListener) {
        
// 负责初始化 loginListener;

        this.loginListener = loginListener;
    }

    public void fireLoginEvent(LoginEvent loginEvent) {
        
// 调用接口的方法

        loginListener.validateLogin(loginEvent);
    }

}

 

[1] [2] 下一页

4000-880-989
(24小时热线)
联系客服
微信公众号

官方公众号

小程序

©2008-2022 CORPORATION ALL Rights Reserved. 昆明奥远科技有限公司版权所有 滇ICP备09003328号-1 滇公网安备 53011102000818号 增值电信业务经营许可证号:滇B2-20110045
昆明那家网络公司好,新媒体运营,网站优化,网络推广,网站建设,网页设计,网站设计,网站推广,云南网站公司,昆明新媒体公司,云南网红主播,昆明SEO公司,昆明网站建设,昆明网络推广,昆明网站优化,昆明网站推广,红河网站建设,大理网络公司,曲靖网络公司,丽江网站设计,昭通网络公司,保山大数据服务,智慧高速建设,智慧校园服务,云南IDC服务商,网络安全测评,等保测评,网站关键词排名优化服务,服务客户尽超2000余家,一切尽在奥远科技,服务电话:13888956730