2023/09/18
package zhawa; import java.awt.Dimension; import java.awt.FlowLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPasswordField; import javax.swing.JTextField; import java.awt.Color; public class Login { public static void main(String args []){ //创建对象 Login tf=new Login(); //使用对象调用方法 tf.showFrame(); } public void showFrame() { //创建一个窗体 JFrame frame=new JFrame(); //设置窗体标题 frame.setTitle("登录界面"); //设置窗体大小 frame.setSize(450,250); frame.getContentPane().setBackground(Color.LIGHT_GRAY); frame.setLocationRelativeTo(null);//设置窗体相对于另一组间的居中位置,参数null表示窗体相对于屏幕的中央位置 //实例化FlowLayout流式布局类的对象,指定对齐方式为居中对齐组件之间的间隔为10个像素 FlowLayout layout = new FlowLayout(FlowLayout.CENTER,10,10); //设置窗体的布局方式 frame.setLayout(layout); //创建一个显示文字的标签 JLabel iconaLabel = new JLabel("账号"); frame.add(iconaLabel); //创建一个输入框对象 JTextField namelnput = new JTextField(); //设置输入框的大小 Dimension inputSize = new Dimension(360,30); namelnput.setPreferredSize(inputSize); //添加输入框到窗体上 frame.add(namelnput); //创建密码标签 JLabel iconbLabel = new JLabel("密码"); //添加标签到窗体上 frame.add(iconbLabel); //创建一个密码输入框 JPasswordField jpf = new JPasswordField();//输入显示为黑点 jpf.setPreferredSize(inputSize); //添加输入框到窗体上 frame.add(jpf); JLabel yanzhen=new JLabel("验证码"); frame.add(yanzhen); JTextField jpf2=new JTextField(); Dimension inputsize = new Dimension(300,30); jpf2.setPreferredSize(inputsize); frame.add(jpf2); Captcha cc=new Captcha(); String cap=cc.get(); JLabel Cap=new JLabel(cap);//生成验证码 frame.add(Cap); //创建按钮 JButton ane = new JButton("登录"); //添加按钮 frame.add(ane); //创建监听器对象 ane.setForeground(Color.BLACK); FrameListener jiantingqi = new FrameListener(); //给按钮添加监听器 ane.addActionListener(jiantingqi); //给监听器的属性赋值 jiantingqi.id=namelnput; jiantingqi.password=jpf; jiantingqi.cc=jpf2; jiantingqi.cap=cap; //设置窗体可见 frame.setVisible(true); } } package zhawa; import java.util.Random; public class Captcha { public String get() { Random rd=new Random(); StringBuilder sb=new StringBuilder(); for(int i=0;i<6;i++) { int x=rd.nextInt(100); x=x%3; char num='0'; if(x==0) { num=(char)(rd.nextInt(10)+48); } else { int way=rd.nextInt(10); int m=rd.nextInt(26)+65; if(way%2==0) { m+=32; } num=(char)m; } sb.append(num); } return sb.toString(); } } package zhawa; import java.awt.event.ActionEvent; import javax.swing.JTextField; import java.awt.event.ActionListener; import javax.swing.JFrame; public class FrameListener implements ActionListener { //输出入框的对象 JTextField id; JTextField password; JTextField cc; String cap; public void actionPerformed(ActionEvent e){ //获取内容 String name = id.getText(); String password1 = password.getText(); String cc1=cc.getText(); String Cap=cap; //自己设置账号密码 if(name.equals("20223717")&&password1.equals("123456")&&cc1.equals(Cap)) { JFrame frame = new JFrame(); frame.setSize(300,300); frame.setLocationRelativeTo(null); frame.setTitle("登录成功"); frame.setVisible(true); } else{ System.out.println("登录错误"); } } }
这是一个登录窗口的实现
包含账号密码和验证码