package Day1;
import java.awt.Color;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.*;
public class CK extends JDialog{
static String s ;//定义s控制子窗口输出文本
static String result = "";//定义result表示验证码
CK(JFrame frame,String s ) {//CK()生成子窗口
super(frame," ",true);
Container c = getContentPane();//获取窗体
c.add(new JLabel(s));
setBounds(380,350,100,100);
}
public static void DJ(JFrame k){//生成验证码
for(int i = 0 ; i < 6 ; i ++)
{
//生成一个97~122的int型的整数
int intVal = (int)(Math.random() * 26 + 97);
//将intValue强制转换为char后连接到result后面
result = result + (char)intVal;
}
System.out.println(result);
JButton b8 = new JButton(result);
b8.setBounds(200, 90, 100, 20);
b8.setBackground(Color.RED);
k.add(b8);
b8.addMouseListener(new MouseAdapter() {
public void mouseReleased(MouseEvent e) {
if(e.getButton()== MouseEvent.BUTTON1) {
b8.setVisible(false);
result = "";
DJ(k);
k.add(b8);
}
}
});
}
public static void main(String[] args) {
JFrame f = new JFrame("登录界面");
f.setLayout(null);
// f.setSize(300, 200);//设置窗体大小
// f.setLocation(300,400);//设置窗体位置
f.setResizable(false);//设置窗体大小是否可以改变大小
JTextField b = new JTextField("手机号/邮箱");//设置账号文本框
b.setBounds(120, 10, 150, 20);//设置其大小位置
b.setBackground(Color.WHITE);//设置其颜色
JPasswordField b3 = new JPasswordField("");//设置密码文本框
b3.setBounds(120, 50, 150, 20);
b3.setBackground(Color.WHITE);
JTextField b4 = new JTextField("");//设置验证码文本框
b4.setBounds(120, 90, 80, 20);
b4.setBackground(Color.WHITE);
JButton b7 = new JButton("登录");//设置登录标签
b7.setBounds(150, 130, 90, 15);//设置其位置大小
b7.setBackground(Color.RED);//设置其颜色
JLabel b1 = new JLabel("账号:");//设置账号标签
b1.setBounds(80, 10, 150, 20);
JLabel b2 = new JLabel("密码:");//设置密码标签
b2.setBounds(80, 50, 150, 20);
JLabel b5 = new JLabel("验证码:");//设置验证码标签
b5.setBounds(70, 90, 150, 20);
b.addMouseListener(new MouseAdapter() {//将文本框中输出“手机号/邮箱”设为空
public void mouseClicked(MouseEvent e) {
if(e.getButton()==MouseEvent.BUTTON1)
b.setText("");
}
});
b7.addActionListener(new ActionListener() {//判断哪部分为空,并进行相应提示
public void actionPerformed(ActionEvent e) {
if(b.getText().equals("")) {
s=" 请输入账号!";
}
else if(!b.getText().equals("") && b3.getText().equals("")) {
s=" 请输入密码!";
}
else if(!b.getText().equals("") && !b3.getText().equals("") && b4.getText().equals("")) {
s=" 请输入验证码!";
}
else if(!b.getText().equals("") && !b3.getText().equals("") && !b4.getText().equals(result)&&!b4.getText().equals("")) {
s=" 验证码错误!";
}
else
s=" 登陆成功!";
CK d = new CK(f,s);
d.setVisible(true);
}
});
DJ(f);//调用DJ函数不断生成验证码
f.add(b);//添加组件
f.add(b3);//添加组件
f.add(b2);//添加组件
f.add(b1);//添加组件
f.add(b1);//添加组件
f.add(b4);//添加组件
f.add(b5);//添加组件
f.add(b7);//添加组件
f.setVisible(true);//设置窗体可见
f.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);//隐藏窗体,并停止程序
f.setBounds(300, 300, 400, 300);//设置窗体大小和位置
}
}
运行结果:






这个程序还缺少注册的部分,没有标准的比较对象(即既没有初识话账号密码,也没有弄注册功能),这是最欠缺的部分。