📄 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 + -