?? customerapplet.java
字號:
/*小凌 QQ:3312883*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;
class Customer extends Object implements java.io.Serializable
{
String custName;
String custPassword;
}
public class CustomerApplet extends JApplet
{
//聲明 面板 標簽 按鈕....
JPanel panelObject;
JLabel labelCustName;
JLabel labelCustPassword;
JTextField textCustName;
JPasswordField textCustPassword;
JButton buttonLogin;
GridBagLayout gl;
GridBagConstraints gbc;
public void init()//程序入口
{
//初始化 布局 變量
gl = new GridBagLayout();//初始化格子布局 gl
gbc = new GridBagConstraints();//初始化格子約束
panelObject = (JPanel)getContentPane();//設置主面板
panelObject.setLayout(gl);//在主面板里設置一個格子布局 gl
//初始化 控件
labelCustName = new JLabel("Customer Login Name");
labelCustPassword = new JLabel("Password");
textCustName = new JTextField(15);
textCustPassword = new JPasswordField(15);
buttonLogin=new JButton("Login");
//添加控件到面板上
gbc.anchor = GridBagConstraints.NORTHWEST;
gbc.gridx = 1;
gbc.gridy = 5;
gl.setConstraints(labelCustName,gbc);
panelObject.add(labelCustName);
gbc.anchor = GridBagConstraints.NORTHWEST;
gbc.gridx = 4;
gbc.gridy = 5;
gl.setConstraints(textCustName,gbc);
panelObject.add(textCustName);
gbc.anchor = GridBagConstraints.NORTHWEST;
gbc.gridx = 1;
gbc.gridy = 9;
gl.setConstraints(labelCustPassword,gbc);
panelObject.add(labelCustPassword);
gbc.anchor = GridBagConstraints.NORTHWEST;
gbc.gridx = 4;
gbc.gridy = 9;
gl.setConstraints(textCustPassword,gbc);
panelObject.add(textCustPassword);
gbc.anchor=GridBagConstraints.NORTHWEST;
gbc.gridx=2;
gbc.gridy=13;
gl.setConstraints(buttonLogin,gbc);//格子布局gl設置約束 把buttonLogin加入約束
panelObject.add(buttonLogin);
LoginAction loginrequest=new LoginAction();//初始化一個登陸按鈕監聽類 為loginrequest
buttonLogin.addActionListener(loginrequest);//給登陸按鈕(buttonLogin)加上"登陸按鈕監聽類" 讓他有事件功能
}
class LoginAction implements ActionListener//登陸按鈕監聽類
{
public void actionPerformed(ActionEvent evt)//當發生事件從這里開始
{
Object obj=evt.getSource();//取出事件內容
if(obj==buttonLogin)//判斷事件內容
{
Customer data=new Customer();//初始化一個Customer類
data.custName = textCustName.getText();//取JTextField的內容也就是用戶名 賦值到data.custName上
data.custPassword =new String(textCustPassword.getPassword());//基本同上 這次是取的密碼 賦值到data.custPassword
try//捕獲異常
{
Socket toServer;//聲明一個套接字用來連接服務器
toServer = new Socket("127.0.0.1",1001);//初始化toServer 開始連接服務器
ObjectOutputStream streamToServer=new ObjectOutputStream (toServer.getOutputStream());//初始化一個輸出流用來取服務器的IP 然后把 IP放入一個 才初始化的輸出流streamToServer 這個輸出流用來 向服務器發送數據
streamToServer.writeObject((Customer)data);//發送數據到服務器(SP "(Customer)data"這也是個數據轉換 到data轉換到Customer類型)
//下面這段就是監聽了
BufferedReader fromServer=new BufferedReader(new InputStreamReader(toServer.getInputStream()));//這句看著這么長其實很簡單 就是把服務器返回的數據 放到fromServer里
String status=fromServer.readLine();//然后讀出fromServer里的數據 到一個字符類型status
getAppletContext().showStatus(status);//在把status顯示到 Applet里
streamToServer.close();//關閉輸出流
fromServer.close();//關閉BufferedReader //正常情況下 程序到這里就終止了
}
catch(InvalidClassException e)
{
showStatus("The Customer class is invalid" + e);
}
catch(NotSerializableException e)
{
showStatus("The object is not serializable" + e);
}
catch(IOException e)
{
//showStatus("Cannot write to the server" + e);
showStatus("連接服務器失敗!");
}
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -