?? clientport.java
字號:
package clientport;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class ClientPort implements Runnable {
Login insystem;
Register register1;
password password1;
select select1;
user1 NormalUser;
user2 ManagerUser;
int usertype;
Vector DgreeWord;
Vector StrangeWord;
Vector UserNumber;
String username;
NewWordText_Frame newword;
public ClientPort() {
insystem = new Login(this);
insystem.setVisible(true);
register1 = new Register(this);
register1.setVisible(false);
password1 = new password(this);
password1.setVisible(false);
select1 = new select(this);
select1.setVisible(false);
NormalUser = new user1(this);
NormalUser.setVisible(false);
ManagerUser = new user2(this);
ManagerUser.setVisible(false);
usertype = -1;
username = null;
Thread thread = new Thread(this);
thread.start();
DgreeWord = new Vector();
StrangeWord = new Vector();
}
public static void main(String[] args) {
new ClientPort();
}
public void setusername(String st1){
username = st1;
}
public String getusername(){
return username;
}
public void SetType(int i){
usertype = i;
}
public int GetType(){
return usertype;
}
private void getmessage(String str){
String str1 = str;
String str2,str3;
int st;
str2 = str.substring(0,3);
str3 = str.substring(3,str.length());
st = Integer.parseInt(str2);
switch(st){
case 111:
SuccessfulLogin(str3);
break;
case 112:
SuccessfulEroll(str3);
break;
case 113:
SuccessfulBrowse(str3);
break;
case 114:
SuccessfulRead_in(str3);
break;
case 115:
SuccessfulChangePassword(str3);
break;
case 116:
SuccessfulAdd_Strangeword(str3);
break;
case 117:
SuccessfulLookover(str3);
break;
case 118:
SuccessfulDelete(str3);
break;
case 119:
System.out.println("收到數據包");
Successfulnewword(str3);
break;
case 120:
SuccessfulInserch_oneword(str3);
break;
}
}
public void run() {
DatagramSocket data = null;
DatagramPacket datap = null;
byte buffer[] = new byte[30000];
try {
datap = new DatagramPacket(buffer,buffer.length);
data = new DatagramSocket(8888);
} catch (SocketException ex) {
ex.printStackTrace();
}
while(true){
try {
data.receive(datap);
int length = datap.getLength();
String message=new String(datap.getData(),0,length);
getmessage(message);
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
public void SentMessage(String st){
String str = st;
byte[] buffer = str.getBytes();
try {
InetAddress address = InetAddress.getByName("127.0.0.1");
DatagramSocket data_socket = new DatagramSocket();
DatagramPacket data_packet = new DatagramPacket(buffer,buffer.length,address,9999);
data_socket.send(data_packet);
} catch (Exception ex) {}
}
private void SuccessfulLogin(String st){
if(st.equalsIgnoreCase("ok ")){
if(usertype == 2){
select1.setVisible(true);
insystem.setVisible(false);
}
if(usertype == 3){
ManagerUser.setVisible(true);
insystem.setVisible(false);
}
NormalUser.getpane().setText("用戶名:" + username);
NormalUser.getpanel().setText("等級:" + usertype);
}
if(st.equalsIgnoreCase("no1 ")){
insystem.setLabel("你的密碼錯誤請檢測");
}
if(st.equalsIgnoreCase("no2 ")){
insystem.setLabel("你的用戶名不存在,請先注冊");
}
}
private void SuccessfulEroll(String st){
if(st.equalsIgnoreCase("ok ")){//注冊成功
successful succes = new successful(insystem,register1);
}
if(st.equalsIgnoreCase("no ")){//注冊失敗
register1.setLabel1("該用戶名已存,請更換后再注冊");
}
}
private void SuccessfulBrowse(String st){
int k = -1;
int m = 0;
String WordName = null;
String Wordtype = null;
String Wordmeanse = null;
String Worddegree = null;
for(int i = 0; i < st.length(); i++){
if(st.charAt(i) == ' '){
if(m == 0){
WordName = st.substring(k+1,i);
}
if(m == 1){
Wordtype = st.substring(k+1,i);
}
if(m == 2){
Wordmeanse = st.substring(k+1,i);
}
if(m == 3){
Worddegree = st.substring(k+1,i);
}
k = i;
m ++;
m = m % 4;
if(m == 0){
word word1 = new word(WordName,Wordtype,Wordmeanse,Worddegree);
NormalUser.getwordList().append(WordName + " " + Wordtype +"\n");
DgreeWord.add(word1);
}
}
}
NormalUser.getwordexplan().append(((word)DgreeWord.get(0)).getWordmeanse());
}
private void SuccessfulRead_in(String st){
if(st.equalsIgnoreCase("ok ")){
successful suc = new successful(ManagerUser);
}
}
private void SuccessfulChangePassword(String st){
if(st.equalsIgnoreCase("ok ")){//修改成功
successful succes = new successful(password1);
}
if(st.equalsIgnoreCase("no1 ")){//系統忙,操作為成功,稍后重試
}
if(st.equalsIgnoreCase("no2 ")){//你的舊密碼錯誤
}
}
private void SuccessfulAdd_Strangeword(String st){
if(st.equalsIgnoreCase("ok ")){//添加生詞成功
NormalUser.getwordexplan().append("添加生詞成功") ;
}
if(st.equalsIgnoreCase("no ")){//單詞已存在
NormalUser.getwordexplan().append("插入失敗") ;
}
}
private void SuccessfulLookover(String st){
int k = -1;
String UserName;
for(int i = 0; i < st.length(); i++){
if(st.charAt(i) == ' '){
UserName = st.substring(k+1,i);
k = i;
UserNumber.add(UserName);
}
}
}
private void SuccessfulDelete(String st){
if(st.equalsIgnoreCase("ok ")){//刪除成功
successful suc = new successful(newword,4);
//suc.setVisible(false);
}
if(st.equalsIgnoreCase("no ")){//刪除失敗
successful suc = new successful(newword,5);
}
}
public void Successfulinserchtype(String st){ //基于本地在剛進入系統時的取得vector
word word1;
String type = st;
NormalUser.getwordList().setText("");
for(int i = 0; i < DgreeWord.size();i++){
word1 = (word)DgreeWord.get(i);
if(word1.getWordtype().equalsIgnoreCase(type)){
NormalUser.getwordList().append(word1.getWordName()+" "+word1.getWordtype()+" "+word1.getWordmeanse()+"\n");
}
}
}
public void Successful_wordname(String name,int j){//添加生詞到生詞表
int state = 0;
int k = j;
String word_name = name;
word word1;
NormalUser.getwordexplan().setText("");
for(int i = 0; i < DgreeWord.size(); i++){
word1 = (word)DgreeWord.get(i);
if(word1.getWordName().equalsIgnoreCase(word_name)){
if(k ==1){
NormalUser.getwordexplan().append(word1.getWordName()+" "+word1.getWordtype()+" "+word1.getWordmeanse()+"\n");
}
if(k == 2){
String sentmass = username + " "+ word1.getWordName()+" "+word1.getWordtype()+" "+word1.getWordmeanse()+" "+word1.getWorddegree()+" ";
SentMessage("116"+sentmass);
}
state ++;
}
}
if(state == 0){
NormalUser.getwordexplan().append("單詞庫中沒有此單詞");
}
}
public void SuccessfulInserch_oneword(String st){//管理員要查詢某一個單詞
String anwser = st;
if(anwser.equalsIgnoreCase("ok ")){
if(ManagerUser.getstate() == 1){
ManagerUser.getwordlist().append(ManagerUser.getString()+" 刪除成功\n");
ManagerUser.getTextfield().setText("");
}
if(ManagerUser.getstate() == 2){
//System.out.println("你錄入的單詞在詞庫中已存在");
ManagerUser.getwordlist().append(ManagerUser.getString()+" 字庫中已有你要插入的單詞\n");
ManagerUser.getTextfield().setText("");
}
}
if(anwser.equalsIgnoreCase("no ")){
if(ManagerUser.getstate() == 1){
//System.out.println("你輸入的單詞在詞庫中不存在");
ManagerUser.getwordlist().append(ManagerUser.getString()+" 字庫中沒有你要查詢單詞,刪除失敗\n");
ManagerUser.getTextfield().setText("");
}
if(ManagerUser.getstate() == 2){
ManagerUser.getwordlist().append(ManagerUser.getString()+" 插入成功\n");
ManagerUser.getTextfield().setText("");
}
}
}
private void Successfulnewword(String str){
String st = str;
String wordname = null;
String wordtype = null;
String wordmean = null;
String worddegree = null;
String st1[][] = new String[50][4];
int m = 0;
int j = 0;
int k = -1;
System.out.println("收到數據包"+st);
for(int i = 0; i < st.length();i++){
if(st.charAt(i) == ' '){
if(m == 0){
wordname = st.substring(k+1,i);
System.out.println(wordname +" ");
}
if(m == 1){
wordtype = st.substring(k+1,i);
System.out.println(wordtype +" ");
}
if(m == 2){
wordmean = st.substring(k+1,i);
System.out.println(wordmean+" ");
}
if(m == 3){
worddegree = st.substring(k+1,i);
System.out.println(worddegree +" ");
}
k = i;
m++;
m = m % 4;
if(m == 0){
st1[j][0] = wordname;
st1[j][1] = wordtype;
st1[j][2] = wordmean;
st1[j][3] = worddegree;
j ++;
}
}
}
newword =new NewWordText_Frame(st1,username);
newword.setVisible(true);
}
public user2 getuser2(){
return ManagerUser;
}
public user1 getuser1(){
return NormalUser;
}
public select getselect(){
return select1;
}
public password getPassword(){
return password1;
}
public Register getRegister(){
return register1;
}
public Login getLogin(){
return insystem;
}
public Vector getVector(){
return DgreeWord ;
}
public NewWordText_Frame getnewword(){
return newword;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -