📄 loginform.java
字号:
package qianqian.p2pchat.gui;
import qianqian.p2pchat.constant.Const;
import qianqian.p2pchat.control.*;
import qianqian.p2pchat.message.UserMessage;
import qianqian.p2pchat.tools.Tools;
public class LoginForm extends RoomForm {
private static final long serialVersionUID = 1L;
private static int count = 0;
private static LoginForm loginForm;
private javax.swing.JButton btLogin;
private javax.swing.JButton btUpdate;
private javax.swing.JButton btConfig;
private javax.swing.JButton btRegist;
private javax.swing.JButton btKeyboard;
private javax.swing.JTextField tbUserId;
private javax.swing.JPasswordField tbUserPwd;
private javax.swing.JLabel lbUserId;
private javax.swing.JLabel lbUserPwd;
private javax.swing.JLabel lbFindPwd;
private javax.swing.JRadioButton btMale;
private javax.swing.JRadioButton btFemale;
private javax.swing.JCheckBox btShift;
private javax.swing.ButtonGroup btgGender;
private javax.swing.JPanel btGenderPane;
private javax.swing.JLabel lbNick;
private javax.swing.JLabel lbSelRoom;
private javax.swing.JLabel lbNewRoom;
private javax.swing.JLabel lbTitle;
private javax.swing.JComboBox ltRooms;
private javax.swing.JTextField tbNewRoom;
private javax.swing.JTextField tbNickname;
private javax.swing.JProgressBar progressBar;
private javax.swing.Timer timer;
private javax.swing.border.MatteBorder border;
private java.awt.Image icon;
private java.awt.Color backgColor;
private java.awt.Color borderColor;
private Keyboard keyboard;
public static LoginForm getInstance() {
if (loginForm == null) {
synchronized(LoginForm.class) {
if(loginForm == null)
loginForm = new LoginForm();
}
}
return loginForm;
}
private LoginForm() {
initComponents();
startProgress();
addListener();
setTitle("仟仟通信");
setBounds(372, 250, 300, 204);
setAlwaysOnTop(true);
setResizable(false);
setIconImage(icon);
setVisible(true);
}
private void initComponents() {
tbNickname = new javax.swing.JTextField();
lbNick = new javax.swing.JLabel("输入昵称:");
lbSelRoom = new javax.swing.JLabel("选择房间:");
lbTitle = new javax.swing.JLabel(
new javax.swing.ImageIcon("icons/title.gif"));
ltRooms = new javax.swing.JComboBox();
lbNewRoom = new javax.swing.JLabel("创建房间:");
lbFindPwd = new javax.swing.JLabel("<html><u><font color=#2A73F0>忘记密码?</font></u></html>");
tbNewRoom = new javax.swing.JTextField();
btLogin = new javax.swing.JButton("登\0录");
btUpdate = new javax.swing.JButton("刷新");
btMale = new javax.swing.JRadioButton("男");
btFemale = new javax.swing.JRadioButton("女");
btShift = new javax.swing.JCheckBox("Shift");
btgGender = new javax.swing.ButtonGroup();
btGenderPane = new javax.swing.JPanel();
progressBar = new javax.swing.JProgressBar();
btConfig = new javax.swing.JButton("设置>>");
btRegist = new javax.swing.JButton("注册",
new javax.swing.ImageIcon("icons/user.gif"));
btKeyboard = new javax.swing.JButton("键盘",
new javax.swing.ImageIcon("icons/lock.gif"));
tbUserId = new javax.swing.JTextField();
tbUserPwd = new javax.swing.JPasswordField();
lbUserId = new javax.swing.JLabel("QianQian账号:");
lbUserPwd = new javax.swing.JLabel("QianQian密码:");
backgColor = new java.awt.Color(235, 245, 255);
borderColor = new java.awt.Color(115,185,255);
border = new javax.swing.border.MatteBorder(new java.awt.Insets(1, 1,
1, 1), borderColor);
keyboard = new Keyboard(tbUserPwd);
icon = new javax.swing.ImageIcon("icons/QianQian.gif").getImage();
java.awt.Container contentPane = getContentPane();
contentPane.setLayout(null);
contentPane.setBackground(backgColor);
lbTitle.setBounds(-1, -1, 302, 44);
contentPane.add(lbTitle);
lbTitle.setBorder(border);
contentPane.add(lbUserId);
lbUserId.setBounds(10, 53, 85, 25);
contentPane.add(tbUserId);
tbUserId.setBorder(border);
tbUserId.setBounds(92, 53, 120, 25);
contentPane.add(btRegist);
btRegist.setBorder(border);
btRegist.setBounds(220, 53, 60, 25);
contentPane.add(lbUserPwd);
lbUserPwd.setBounds(10, 91, 85, 25);
contentPane.add(tbUserPwd);
tbUserPwd.setBorder(border);
tbUserPwd.setBounds(92, 91, 120, 25);
contentPane.add(btKeyboard);
btKeyboard.setBorder(border);
btKeyboard.setBounds(220, 91, 60, 25);
btLogin.setBorder(border);
contentPane.add(btLogin);
btLogin.setBounds(26, 132, 65, 25);
btConfig.setBorder(border);
contentPane.add(btConfig);
btConfig.setBounds(125, 132, 65, 25);
btShift.setBorder(border);
btShift.setBackground(backgColor);
contentPane.add(btShift);
btShift.setBounds(235, 120, 60, 25);
contentPane.add(lbFindPwd);
lbFindPwd.setBounds(225, 145, 60, 20);
contentPane.add(progressBar);
progressBar.setForeground(borderColor);
progressBar.setBackground(backgColor);
progressBar.setBorder(javax.swing.BorderFactory.createEmptyBorder());
progressBar.setBounds(-2, 166, 302, 3);
contentPane.add(lbNick);
lbNick.setBounds(15, 180, 90, 25);
contentPane.add(tbNickname);
tbNickname.setBorder(border);
tbNickname.setBounds(75, 180, 100, 25);
btgGender.add(btMale);
btgGender.add(btFemale);
btMale.setSelected(true);
btMale.setBackground(backgColor);
btFemale.setBackground(backgColor);
btGenderPane.setLayout(new java.awt.GridLayout(1, 2, 5, 0));
btGenderPane.setBackground(backgColor);
btGenderPane.add(btMale);
btGenderPane.add(btFemale);
contentPane.add(btGenderPane);
btGenderPane.setBounds(185, 180, 90, 25);
contentPane.add(lbNewRoom);
lbNewRoom.setBounds(15, 215, 148, 25);
contentPane.add(tbNewRoom);
tbNewRoom.setBorder(border);
tbNewRoom.setBounds(75, 215, 200, 25);
contentPane.add(lbSelRoom);
lbSelRoom.setBounds(15, 250, 89, 25);
contentPane.add(ltRooms);
ltRooms.setBorder(border);
ltRooms.setBackground(java.awt.Color.WHITE);
ltRooms.setBounds(75, 250, 130, 25);
btUpdate.setBorder(border);
contentPane.add(btUpdate);
btUpdate.setBounds(215, 250, 60, 25);
contentPane.add(keyboard);
keyboard.setBorder(border);
keyboard.setBounds(300, -5, 290, 204);
keyboard.setLayout(border, 6);
pack();
}
private void startProgress() {
int delay = 60;
java.awt.event.ActionListener task = new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent ae) {
if (count <= 100)
progressBar.setValue(++count);
}
};
timer = new javax.swing.Timer(delay, task);
}
private void addListener() {
// 关闭窗口
setDefaultCloseOperation(javax.swing.WindowConstants.DO_NOTHING_ON_CLOSE);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent e) {
if(Controller.isOn())
Controller.getInstance().quit();
dispose();
}
});
// 更新聊天列表
btUpdate.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
updateRoomList();
}
});
//设置
btConfig.addActionListener(new java.awt.event.ActionListener() {
boolean fold = true;
public void actionPerformed(java.awt.event.ActionEvent evt) {
if(fold) {
btConfig.setText("设置<<");
setBounds(372, 150, 300, 320);
fold = false;
} else {
btConfig.setText("设置>>");
setBounds(372, 250, 300, 204);
fold = true;
}
}
});
// 登录
btLogin.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
new Thread(new Runnable() {
public void run() {
if (!timer.isRunning()) {
btLoginPerformed();
}
}
}).start();
}
});
//键盘
btKeyboard.addActionListener(new java.awt.event.ActionListener() {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -