[JAVA Swing] 用户登录界面(2)
作者:互联网
有了两个窗口之后,接下来实现各类按钮功能,那就需要用到监听。
新建一个类实现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 ); } }
其实到这里各类还是没有联系的,下一篇再使这些功能串起来。
标签:Rfr,界面,import,void,Swing,JOptionPane,Lfr,JAVA,public 来源: https://www.cnblogs.com/masahiko/p/14496342.html