📄 logiongui.java
字号:
package edu.sccp.chat.frame;
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.io.IOException;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;
import com.swtdesigner.SwingResourceManager;
import edu.sccp.chat.action.ToServerProcess;
import edu.sccp.chat.jarClass.JarAllege;
import edu.sccp.chat.tools.Check;
public class LogionGUI {
private JTextField ipField4;
private JTextField ipField3;
private JTextField ipField2;
/**
* @param args
*
*/
public static int IDENTITY=1;//登陆身份,默认普通用户0,1为管理员
JFrame frame;
JTextField nameField;
JPasswordField passwordField;
JComboBox comboBox;
JTextField ipField1;
JTextField socketField;
JLabel label_9;
JLabel label_10;
JLabel label_11;
JLabel label_12;
JLabel label_13;
JLabel label_14;
public LogionGUI()
{
JarAllege.bai();
initGUI();
}
private void initGUI()
{
frame=new JFrame("企业即时通 登陆");
frame.setIconImage(SwingResourceManager.getImage(LogionGUI.class, "/edu/sccp/chat/image/icon.png"));
Container contentPane=frame.getContentPane();
contentPane.setLayout(null);
final JButton logion = new JButton();
logion.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
if(nameField.getText().length()==0)
{
JOptionPane.showMessageDialog(frame,"用户名不能为空!","警告",JOptionPane.WARNING_MESSAGE,null);
return;
}
else
{
if(!(Check.checkMsg(nameField.getText(),8,10,true)))
{
JOptionPane.showMessageDialog(frame,"用户名输入格式不对,请确认输入的是数字并保持在8-10之内!","警告",JOptionPane.WARNING_MESSAGE,null);
return;
}
}
if(passwordField.getText().length()==0)
{
JOptionPane.showMessageDialog(frame,"密码不能为空!","警告",JOptionPane.WARNING_MESSAGE,null);
return;
}
else
{
if(!(Check.checkMsg(passwordField.getText(), 6, 10, false)))
{
JOptionPane.showMessageDialog(frame,"输入的密码不符合长度!","警告",JOptionPane.WARNING_MESSAGE,null);
return;
}
}
if(ipField1.getText().length()==0||ipField2.getText().length()==0||ipField3.getText().length()==0||ipField4.getText().length()==0)
{
JOptionPane.showMessageDialog(frame,"IP不能为空","警告",JOptionPane.WARNING_MESSAGE,null);
return;
}else
{
if((!Check.isDigit(ipField1.getText()))||(!Check.isDigit(ipField2.getText()))||(!Check.isDigit(ipField3.getText()))||(!Check.isDigit(ipField4.getText())))
{
JOptionPane.showMessageDialog(frame,"IP只能为数字!","警告",JOptionPane.WARNING_MESSAGE,null);
return;
}
if(!(Check.inRange(ipField1.getText(), 0, 255)))
{
JOptionPane.showMessageDialog(frame,"IP格式不对","警告",JOptionPane.WARNING_MESSAGE,null);
return;
}
if(!(Check.inRange(ipField2.getText(), 0, 255)))
{
JOptionPane.showMessageDialog(frame,"IP格式不对!","警告",JOptionPane.WARNING_MESSAGE,null);
return;
}
if(!(Check.inRange(ipField3.getText(), 0, 255)))
{
JOptionPane.showMessageDialog(frame,"IP格式不对!","警告",JOptionPane.WARNING_MESSAGE,null);
return;
}
if(!(Check.inRange(ipField4.getText(), 0, 255)))
{
JOptionPane.showMessageDialog(frame,"IP格式不对!","警告",JOptionPane.WARNING_MESSAGE,null);
return;
}
}
if(socketField.getText().length()==0)
{
JOptionPane.showMessageDialog(frame,"端口号不能为空!","警告",JOptionPane.WARNING_MESSAGE,null);
return;
}
else
{
if(!(Check.isDigit(socketField.getText())))
{
JOptionPane.showMessageDialog(frame,"端口号必须为数字!","警告",JOptionPane.WARNING_MESSAGE,null);
return;
}
if(!(Check.inRange(socketField.getText(),1023,65535)))
{
JOptionPane.showMessageDialog(frame,"端口号设置不在范围之内!","警告",JOptionPane.WARNING_MESSAGE,null);
return;
}
}
login();
}
});
logion.setText("登录");
logion.setBounds(20, 187, 71, 25);
frame.getContentPane().add(logion);
final JButton reset = new JButton();
reset.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
nameField.setText("");
passwordField.setText("");
}
});
reset.setText("重置");
reset.setBounds(116, 187, 78, 25);
frame.getContentPane().add(reset);
final JButton exit = new JButton();
exit.addActionListener(new ActionListener() {
public void actionPerformed(final ActionEvent e) {
int i=JOptionPane.showConfirmDialog(frame,"确定要退出?","提示",JOptionPane.YES_OPTION,JOptionPane.INFORMATION_MESSAGE,null);
if(i==0)
{
System.exit(0);
}
}
});
exit.setText("退出");
exit.setBounds(211, 187, 80, 25);
frame.getContentPane().add(exit);
final JLabel label_8 = new JLabel();
label_8.setFont(new Font("", Font.BOLD, 16));
label_8.setText("客户端");
label_8.setBounds(119, 7, 75, 32);
frame.getContentPane().add(label_8);
final JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.setBounds(10, 45, 299, 136);
frame.getContentPane().add(tabbedPane);
final JPanel panel = new JPanel();
panel.setLayout(null);
tabbedPane.addTab("登录", null, panel, null);
final JLabel label_1 = new JLabel();
label_1.setBounds(22, 8, 71, 24);
panel.add(label_1);
label_1.setText("用户名:");
nameField = new JTextField();
nameField.addFocusListener(new FocusAdapter() {
public void focusGained(final FocusEvent e) {
if(nameField.getText().length()==0)
{
label_9.setText("8-10位");
}
}
public void focusLost(final FocusEvent e) {
if(nameField.getText().length()==0)
label_9.setText("不能为空");
else
label_9.setText("");
}
});
nameField.setBounds(74, 10, 137, 21);
panel.add(nameField);
final JLabel label_2 = new JLabel();
label_2.setBounds(22, 38, 57, 16);
panel.add(label_2);
label_2.setText(" 密 码:");
passwordField = new JPasswordField();
passwordField.addFocusListener(new FocusAdapter() {
public void focusGained(final FocusEvent e) {
if(passwordField.getText().length()==0)
{
label_10.setText("6-10位");
}
}
public void focusLost(final FocusEvent e) {
if(passwordField.getText().length()==0)
label_10.setText("不能为空");
else
label_10.setText("");
}
});
passwordField.setBounds(74, 35, 137, 23);
panel.add(passwordField);
comboBox = new JComboBox();
comboBox.addItemListener(new ItemListener() {
public void itemStateChanged(final ItemEvent e) {
if(comboBox.getSelectedItem().equals("普通用户"))
LogionGUI.IDENTITY=0;
if(comboBox.getSelectedItem().equals("管理员"))
LogionGUI.IDENTITY=1;
}
});
comboBox.setBounds(74, 67, 110, 20);
panel.add(comboBox);
comboBox.addItem("普通用户");
comboBox.addItem("管理员");
final JLabel label_3 = new JLabel();
label_3.setBounds(10, 69, 71, 16);
panel.add(label_3);
label_3.setText("登录类型:");
label_9 = new JLabel();
label_9.setForeground(new Color(255, 0, 0));
label_9.setBounds(217, 12, 67, 16);
panel.add(label_9);
label_10 = new JLabel();
label_10.setForeground(new Color(255, 0, 0));
label_10.setBounds(216, 38, 68, 16);
panel.add(label_10);
label_13 = new JLabel();
label_13.setForeground(new Color(255, 0, 0));
label_13.setBounds(163, 67, 101, 16);
panel.add(label_13);
label_14 = new JLabel();
label_14.setForeground(new Color(255, 0, 0));
label_14.setBounds(163, 89, 101, 16);
panel.add(label_14);
final JPanel panel_1 = new JPanel();
panel_1.setLayout(null);
tabbedPane.addTab("配置", null, panel_1, null);
final JLabel label_4 = new JLabel();
label_4.setBounds(26, 10, 58, 16);
panel_1.add(label_4);
label_4.setText("连接IP:");
ipField1 = new JTextField();
ipField1.addFocusListener(new FocusAdapter() {
public void focusGained(final FocusEvent e) {
if(ipField1.getText().length()==0)
{
label_12.setText("大于0小于255");
}
}
});
ipField1.setBounds(74, 8, 42, 21);
panel_1.add(ipField1);
ipField1.addKeyListener(new KeyAdapter() {
public void keyPressed(final KeyEvent e) {
if(ipField1.getText().length()==2)
{
ipField2.requestFocus();
}
}
});
final JLabel label = new JLabel();
label.setBounds(122, 10, 18, 16);
panel_1.add(label);
label.setText(".");
ipField2 = new JTextField();
ipField2.addFocusListener(new FocusAdapter() {
public void focusGained(final FocusEvent e) {
if(ipField1.getText().length()==0)
{
label_12.setText("大于0小于255");
}
}
});
ipField2.setBounds(133, 8, 44, 21);
panel_1.add(ipField2);
ipField2.addKeyListener(new KeyAdapter() {
public void keyPressed(final KeyEvent e) {
if(ipField2.getText().length()==2)
{
ipField3.requestFocus();
}
}
});
final JLabel label_6 = new JLabel();
label_6.setBounds(183, 10, 13, 16);
panel_1.add(label_6);
label_6.setText(".");
ipField3 = new JTextField();
ipField3.addFocusListener(new FocusAdapter() {
public void focusGained(final FocusEvent e) {
if(ipField1.getText().length()==0)
{
label_12.setText("大于0小于255");
}
}
});
ipField3.setBounds(189, 8, 40, 21);
panel_1.add(ipField3);
ipField3.addKeyListener(new KeyAdapter() {
public void keyPressed(final KeyEvent e) {
if(ipField3.getText().length()==2)
{
ipField4.requestFocus();
}
}
});
final JLabel label_7 = new JLabel();
label_7.setBounds(235, 10, 13, 16);
panel_1.add(label_7);
label_7.setText(".");
ipField4 = new JTextField();
ipField4.addFocusListener(new FocusAdapter() {
public void focusLost(final FocusEvent e) {
if(ipField4.getText().length()==0 || ipField1.getText().length()==0 || ipField2.getText().length()==0 || ipField3.getText().length()==0)
{
label_12.setText("IP不能为空");
label_14.setText("IP不能为空");
}
else
{
label_12.setText("");
label_14.setText("");
}
}
public void focusGained(final FocusEvent e) {
if(ipField1.getText().length()==0)
{
label_12.setText("大于0小于255");
}
}
});
ipField4.setBounds(241, 8, 40, 21);
panel_1.add(ipField4);
ipField4.addKeyListener(new KeyAdapter() {
public void keyPressed(final KeyEvent e) {
if(ipField4.getText().length()==2)
{
socketField.requestFocus();
}
}
});
final JLabel label_5 = new JLabel();
label_5.setBounds(24, 46, 60, 16);
panel_1.add(label_5);
label_5.setText("端口号:");
socketField = new JTextField();
socketField.setText("5566");
socketField.addFocusListener(new FocusAdapter() {
public void focusGained(final FocusEvent e) {
if(socketField.getText().length()==0)
{
label_11.setText("大于1023");
}
}
public void focusLost(final FocusEvent e) {
if(socketField.getText().length()==0)
{
label_11.setText("端口不能为空");
label_13.setText("端口不能为空");
}
else
{
label_11.setText("");
label_13.setText("");
}
}
});
socketField.setBounds(74, 44, 44, 21);
panel_1.add(socketField);
label_11 = new JLabel();
label_11.setForeground(new Color(255, 0, 0));
label_11.setBounds(122, 46, 107, 16);
panel_1.add(label_11);
label_12 = new JLabel();
label_12.setForeground(new Color(255, 0, 0));
label_12.setBounds(133, 83, 128, 16);
panel_1.add(label_12);
}
public void showGUI()
{
frame.setResizable(false);
frame.setSize(324,252);
frame.setLocationRelativeTo(null);//中间显示界面
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public void login()
{
String name=nameField.getText().trim();
String password=passwordField.getText().trim();
String ip=ipField1.getText().trim()+"."+ipField2.getText().trim()+"."+ipField3.getText().trim()+"."+ipField4.getText().trim();
String socket=socketField.getText().trim();
boolean fal=false;//用户登陆
if(comboBox.getSelectedItem().equals("管理员"))
fal=true;
try {
Vector vector=new ToServerProcess(ip,socket).login(name,password,fal);
Vector v=(Vector) vector.get(0);
if(v.get(0).equals("false"))
{
JOptionPane.showMessageDialog(frame,"登录失败,账号或密码错误或登录的权限不足!","警告",JOptionPane.WARNING_MESSAGE,null);
return;
}
if(v.get(0).equals("重复"))
{
JOptionPane.showMessageDialog(frame,"此ID已登录,请稍后登录!","警告",JOptionPane.WARNING_MESSAGE,null);
return;
}
frame.dispose();
new MainGUI(vector).showGUI();
} catch (IOException e) {
// TODO Auto-generated catch block
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new LogionGUI().showGUI();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -