免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1130 | 回复: 0
打印 上一主题 下一主题

Java Bean 事件处理(摸板) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-18 16:42 |只看该作者 |倒序浏览

/*
* 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);
    }
}
/**
* MainFrame.java
*/
package beanTest;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
/**
* @author wuliqiang
*
*/
public class MainFrame extends JFrame implements LoginListener {
    private static final long serialVersionUID = 1L;
    private LoginBean loginBean;
    public MainFrame() {
        super("my test MainFrame");
        loginBean = new LoginBean();
        loginBean.addLoginListener(this);
        getContentPane().add(loginBean);
        setSize(400, 500);
        setVisible(true);
    }
    public static void main(String[] args) {
        MainFrame app = new MainFrame();
        app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    public void validateLogin(LoginEvent e) {
        JOptionPane.showMessageDialog(this, "userName:" + e.getUserName()
                + "\n" + "Password:" + new String(e.getPassword()));
    }
}

运行可以通过,总算大功告成了....


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/49717/showart_1205496.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP