📄 loginframe.java
字号:
/*
* 创建日期 2005-9-7
*
* TODO 要更改此生成的文件的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
package fsc.client;
/**
* @author 清澄
*
* TODO 要更改此生成的类型注释的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
/*
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
*/
import fsc.models.*;
import fsc.models.exceptions.*;
import fsc.util.*;
public class LoginFrame extends JFrame
implements ActionListener{
private ClientApp app;
private static final String SERVER_IP="127.0.0.1";
private static final int SERVER_PORT=8000;
JLabel user;
JLabel password;
JLabel welcome;
JButton enter;
JButton register;
JButton cancel;
JTextField myname;
JPasswordField mypassword;
LoginModel lm;
public LoginFrame(String name, ClientApp a)
{
super(name);
app=a;
lm = app.loginModel;
Container container=getContentPane();
container.setLayout(null);
enter=new JButton("登录");
register=new JButton("注册");
cancel=new JButton("取消");
user=new JLabel("请输入帐号");
password=new JLabel("请输入密码");
welcome=new JLabel(" 欢 迎 使 用 ");
myname=new JTextField(10);
mypassword=new JPasswordField(10);
user.setBounds(10,30,100,30);
password.setBounds(10,80,100,30);
enter.setBounds(50,140,80,30);
register.setBounds(160,140,80,30);
cancel.setBounds(270,140,80,30);
myname.setBounds(100,30,220,30);
mypassword.setBounds(100,80,220,30);
welcome.setBounds(130,170,200,80);
container.add(user);
container.add(password);
container.add(welcome);
container.add(enter);
container.add(register);
container.add(cancel);
container.add(myname);
container.add(mypassword);
setSize(400,300);
setLocation(300,200);
setVisible(true);
setResizable(false);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
enter.addActionListener(this);
register.addActionListener(this);
cancel.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==enter)
{
System.out.println("enter");
String u= myname.getText();
String p= mypassword.getText();
try
{
lm.setUserName(u);
lm.setPassword(p);;
}
catch(InvalidUserNameException ex)
{
JOptionPane.showMessageDialog(this,ex.getMessage(),"提示",JOptionPane.ERROR_MESSAGE);
return;
}
catch (InvalidPassswordException ex) {
JOptionPane.showMessageDialog(this,ex.getMessage(),"提示",JOptionPane.ERROR_MESSAGE);
return;
}
catch (Exception ex) {
JOptionPane.showMessageDialog(this,"未知错误!","提示",JOptionPane.ERROR_MESSAGE);
return;
}
//try to connect the server
try
{
System.err.println("trying to connect server");
app.getDataOutputStream().writeUTF(lm.toString());
String result= app.getDataInputStream().readUTF();
StringProcessor sp = new StringProcessor(result);
if(sp.getLine().equals(LoginResultModel.TAG))
{
LoginResultModel lrm= new LoginResultModel(sp.getContent());
if(lrm.getLoginResult().equals("YES"))
{
JOptionPane.showMessageDialog(this,"登陆成功!\n"+lrm.getExternalInfo(),"提示",JOptionPane.ERROR_MESSAGE);
}
else
{
JOptionPane.showMessageDialog(this,"登陆失败!\n"+lrm.getExternalInfo(),"提示",JOptionPane.ERROR_MESSAGE);
app.closeIOStreamsAndDisconnect();
}
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
else if(e.getSource()==register){
app.createRegisterFrame("注册界面");
}
else if(e.getSource()==cancel)
{
System.exit(0);
}
}
public static void main( String[] args)
{
new LoginFrame("用户登录",null);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -