Loading

[JAVA Swing] 用户登录界面(2)

[JAVA Swing] 用户登录界面(1)

[JAVA Swing] 用户登录界面(3)

 

有了两个窗口之后,接下来实现各类按钮功能,那就需要用到监听。

新建一个类实现ActionListener接口,这里把所有的button都设置同一个实例,为组件绑定不同的动作命令(ActionCommand)来区分当前触发事件的组件。

package login;
//按钮监听类
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Bli implements ActionListener{

    
    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
        String command = e.getActionCommand();
        
        //按下登录按钮
        if (Lfr.COMMAND_SIGNINBTN.equals(command)) {
            //弹出登录对话框
            
            
            }
        //按下注册页面的注册按钮
        else if (Rfr.COMMAND_RREGISTER.equals(command)) {
            //弹出注册对话框
            
            
            }
        //按下重置按钮
        else if (Lfr.COMMAND_RESET.equals(command)) {
            //删除所有文本框的文字
            Lfr.username.setText("");
            Lfr.password.setText("");
            Rfr.conpassword.setText("");
            //设置光标位置
            Lfr.username.requestFocus();  
        }
        //按下登录界面的注册按钮
        else if (Lfr.COMMAND_REGISTER.equals(command)) {
            //弹出注册界面
            Rfr.register();
        }
    }
}

然后再新建一个类继承PlainDocument,重写里面的insertString方法,再为文本框添加这个类的构造方法,就可以限制文本框的输入。

package login;
//文本框限制类
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;

public class TxDocument extends PlainDocument{

    private static final long serialVersionUID = 1L;
    int maxLength;

    //有参构造,参数为文本框输入字符最大长度
    public TxDocument(int newMaxLength) {
        super();
        maxLength = newMaxLength;
        }
    
    @Override
    public void insertString(int offset,String str, AttributeSet a) throws BadLocationException{
        //字数超出范围
        if (getLength() + str.length() > maxLength) {
            return;
            }
        //字数在范围内
        else{
            //调用父级方法插入字符
            super.insertString(offset, str, a);
        }
    }
}

最后再写一个弹窗类

package login;

import javax.swing.JOptionPane;

public class Opane {
    
    public static void registerOK() {
        JOptionPane.showMessageDialog(
                Rfr.frame2,
                "注册成功",
                "提示",
                JOptionPane.WARNING_MESSAGE
                );
    }

    public static void registerWrong() {
        JOptionPane.showMessageDialog(
                Rfr.frame2,
                "两次密码不一致",
                "提示",
                JOptionPane.WARNING_MESSAGE
                );
    }
    
    public static void loginOK() {
        JOptionPane.showMessageDialog(
                Lfr.frame,
                "登录成功",
                "提示",
                JOptionPane.WARNING_MESSAGE
                );
    }
}

其实到这里各类还是没有联系的,下一篇再使这些功能串起来。

posted @ 2021-03-07 20:58  Masahiko  阅读(932)  评论(0编辑  收藏  举报