📄 clientlogin.java
字号:
package dssclient;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.StringTokenizer;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
public class ClientLogin extends JFrame implements ActionListener{
//组件定义
JLabel namelabel, iplabel,pswdlabel, portlabel;
JTextField tfname, tfip, tfport;
JPasswordField tfpswd;
JButton regbutton,logbutton, exitbutton;
//网络接口定义
Socket socket = null;
BufferedInputStream in;
PrintStream out;
byte[] data = new byte[512];
static String ENC = "GB2312";
String username = new String();
String userpswd = new String();
//网格布局定义
void buildConstraints(GridBagConstraints grid,int gx,int gy,int gw,int gh,int wx,int wy){
grid.gridx = gx;
grid.gridy = gy;
grid.gridwidth = gw;
grid.gridheight = gh;
grid.weightx = wx;
grid.weighty = wy;
}
public ClientLogin() {
super("数字签名系统登录"); //设置标题
try {
ClientJbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
public void actionPerformed(ActionEvent e){
if(e.getActionCommand() == "登录"){
if(tfname.getText().equals(""))
JOptionPane.showMessageDialog(this,"用户不能为空","确定",JOptionPane.INFORMATION_MESSAGE);
else if(tfip.getText().equals("")||tfport.getText().equals(""))
JOptionPane.showMessageDialog(this,"服务器地址和服务器端口不能为空","确定",JOptionPane.INFORMATION_MESSAGE);
else if(socket == null){
try{
String userinfo = "INFO:"+tfname.getText()+":"+new String(tfpswd.getPassword())+":"+InetAddress.getLocalHost().toString()+":";
socket = new Socket(tfip.getText(),Integer.parseInt(tfport.getText()));
out = new PrintStream(socket.getOutputStream());
in = new BufferedInputStream(socket.getInputStream());
out.println(userinfo); //发送到socket上 (ip 和 端口)
out.flush();
in.read(data);//从socket上 (ip 和 端口)的到数据
String str = new String(data,ENC); //得到数据
StringTokenizer str1 = new StringTokenizer(str,":");
String recall = new String();
recall = str1.nextToken();
if(recall.equals("SUC")){
this.dispose();
ListUser td = new ListUser(tfname.getText(),socket);
td.setVisible(true);
}
else if(recall.equals("REFUSE")){
JOptionPane.showMessageDialog(this,"对不起,用户名或密码不正确!","确定",JOptionPane.INFORMATION_MESSAGE);
socket.close();
socket = null;
}
else if(recall.equals("REFUSE")){
JOptionPane.showMessageDialog(this,"对不起,用户名或密码不正确!","确定",JOptionPane.INFORMATION_MESSAGE);
socket.close();
socket = null;
}
else{
JOptionPane.showMessageDialog(this,"对不起,连接不成功!","确定",JOptionPane.INFORMATION_MESSAGE);
socket.close();
socket=null;
}
}catch(IOException ex){
System.out.println("Error:"+ex);
}
}
}
else if(e.getActionCommand()=="关闭"){
this.dispose();
System.exit(0);
}
else if(e.getActionCommand()=="注册"){
Register rg = new Register();
rg.show();
}
}
void sendinfo(String s){
try {
socket = new Socket(tfip.getText(),Integer.parseInt(tfport.getText()));
out= new PrintStream(socket.getOutputStream());
in = new BufferedInputStream(socket.getInputStream());
} catch (NumberFormatException e1) {
e1.printStackTrace();
} catch (UnknownHostException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
out.println(s);
out.flush();
}
private void ClientJbInit() throws Exception {
setSize(300,200); //设置大小
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //关闭窗口时, 程序也结束
GridBagLayout gridbag = new GridBagLayout(); //实例化一个布局管理器 gridbag
JPanel pane = new JPanel(); //实例化一个面板 pane
pane.setLayout(gridbag); //将布局管理器 gridbag 应用于 面板 pane 上
GridBagConstraints constraints = new GridBagConstraints(); //创建GridBagConstratints的一个实例
//用户标签
buildConstraints(constraints,0,1,1,1,0,20);
constraints.fill = GridBagConstraints.NONE; //组件的fill约束
constraints.anchor = GridBagConstraints.CENTER; //组件的anchor约束
namelabel = new JLabel("用户:",JLabel.CENTER);
gridbag.setConstraints(namelabel,constraints); //组件和约束限制
pane.add(namelabel);
//用户
buildConstraints(constraints,1,1,1,1,0,20);
constraints.fill = GridBagConstraints.HORIZONTAL;
tfname = new JTextField();
gridbag.setConstraints(tfname,constraints);
pane.add(tfname);
//IP地址标签
buildConstraints(constraints,2,1,1,1,0,20);
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.CENTER;
iplabel = new JLabel("ip:",JLabel.CENTER);
gridbag.setConstraints(iplabel,constraints);
pane.add(iplabel);
//IP地址
buildConstraints(constraints,3,1,1,1,0,20);
constraints.fill = GridBagConstraints.HORIZONTAL;
tfip = new JTextField("localhost");
gridbag.setConstraints(tfip,constraints);
pane.add(tfip);
//密码标签
buildConstraints(constraints,0,2,1,1,0,20);
constraints.fill = GridBagConstraints.NONE;
pswdlabel = new JLabel("密码:",JLabel.CENTER);
gridbag.setConstraints(pswdlabel,constraints);
pane.add(pswdlabel);
//密码
buildConstraints(constraints,1,2,1,1,0,20);
constraints.fill = GridBagConstraints.HORIZONTAL;
tfpswd = new JPasswordField();
gridbag.setConstraints(tfpswd,constraints);
pane.add(tfpswd);
//端口标签
buildConstraints(constraints,2,2,1,1,0,20);
constraints.fill = GridBagConstraints.NONE;
portlabel = new JLabel("端口:",JLabel.LEFT);
gridbag.setConstraints(portlabel,constraints);
pane.add(portlabel);
//端口
buildConstraints(constraints,3,2,1,1,0,20);
constraints.fill = GridBagConstraints.HORIZONTAL;
tfport = new JTextField("8080");
gridbag.setConstraints(tfport,constraints);
pane.add(tfport);
//注册
buildConstraints(constraints,1,3,1,1,25,0);
constraints.fill = GridBagConstraints.NONE;
regbutton = new JButton("注册");
regbutton.addActionListener(this);
gridbag.setConstraints(regbutton,constraints);
pane.add(regbutton);
//登录
buildConstraints(constraints,2,3,1,1,25,0);
constraints.fill = GridBagConstraints.NONE;
logbutton = new JButton("登录");
logbutton.addActionListener(this);
gridbag.setConstraints(logbutton,constraints);
pane.add(logbutton);
//退出
buildConstraints(constraints,3,3,1,1,25,0);
constraints.fill = GridBagConstraints.NONE;
exitbutton = new JButton("关闭");
exitbutton.addActionListener(this);
gridbag.setConstraints(exitbutton,constraints);
pane.add(exitbutton);
setContentPane(pane);
}
public static void main(String args[]) {
ClientLogin client = new ClientLogin();
try {
SwingUtilities.updateComponentTreeUI(client);
}catch(Exception e){
}
client.show();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -