java聊天文件,java聊天小程序 (一个接口两个java文件)之一
interface MyValue {/*--------------------------------------定義常用變量接口---------------------------------------*/
int WEIGHT1 = 20;
int WEIGHT2 = 10;
int WEIGHT3 = 30;
int HEIGHT1 = 30;
int LOCATION = 200;
int ININWEIGHT = 200;
String s1 = "發送";
String s2 = "消息:";
String s3 = "Wayne";
String s4 = "文件";
String s5 = "保存聊天信息";
String s6= "讀取聊天信息";
String s7="對方IP";
String s8="幫助";
String s9="幫助文檔";
String s10="編輯";
String s11="刪除記錄";
String s12="查找記錄";
String s13="傳文件";
String s14="關閉";
String s15="Connect";
String user="對方";
String s16="Port";
String s17="共可輸入20個字符";
String ip="127.0.0.1";
int INITHEIGHT = 200;
}
/*========================================核心程序================================================*/
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.io.*;
import java.net.*;
import javax.swing.*;
import java.util.zip.*;
public class TalkProgram extends Frame implements MyValue{
private Button b1 = null;
private Button b2 = null;
private Button b3 = null;
private Button b4 = null;
private TextField t1 = null;
private TextField t2 = null;
private TextField t3 = null;
private TextArea ta1 = null;
private Panel p1 = null;
private Panel p2 = null;
private Label l1 = null;
private Label l2 = null;
private Label l3 = null;
private Label l4 = null;
public? DatagramSocket socket=null;//聲明datagramsocket套接字,隨機綁定一個有效的端口;
int SERVERPORT=8080;//默認端口為:8080
public static String serverIP="127.0.0.1";//默認為本機
public static int PORT;//對話框輸入對方的服務器的端口號
public String port1;//自己方服務器的端口
public TalkProgram()
{//構造函數
super(s3);
/*------------------------ 初始化所有需要的部件------------------------------------*/
t1 = new TextField("", WEIGHT1);
t2 = new TextField("", WEIGHT3);
t1.addKeyListener(new stringlLeft());
t3 = new TextField("", WEIGHT2/2);
ta1 = new TextArea(WEIGHT2, HEIGHT1);
b1 = new Button(s1);
b2=new Button(s13);
b2.addActionListener(new send());
b3=new Button(s14);
b4=new Button(s15);
b4.addActionListener(new connect());
p1 = new Panel();
p2 = new Panel();
l1 = new Label(s2);
l2 = new Label(s7);
l3 = new Label(s16);
l4 = new Label(s17);
p1.setLayout(new FlowLayout());
p1.add(l1);
p1.add(t1);
p1.add(l4);
p1.add(b1);
b1.addActionListener(new SendMessage ());
p1.add(b2);
p1.add(b3);
b3.addActionListener(new closeConnect());
p2.setLayout(new FlowLayout());
p2.add(l3);
p2.add(t3);
p2.add(l2);
p2.add(t2);
p2.add(b4);
/*------------------------------下面是關于菜單部分-------------------------------------*/
MenuBar mb = new MenuBar();
Menu m1 = new Menu(s4);
Menu m2= new Menu(s10);
Menu m3 = new Menu(s8);
MenuItem mi1 = new MenuItem(s5,new MenuShortcut(KeyEvent.VK_S));
MenuItem mi2 = new MenuItem(s6,new MenuShortcut(KeyEvent.VK_O));
MenuItem mi3 = new MenuItem(s11,new MenuShortcut(KeyEvent.VK_X));
MenuItem mi4 = new MenuItem(s9,new MenuShortcut(KeyEvent.VK_H));
MenuItem mi5 = new MenuItem(s12,new MenuShortcut(KeyEvent.VK_F));
m1.add(mi1);
m1.addSeparator();
m1.add(mi2);
m2.add(mi3);
m2.addSeparator();
m2.add(mi5);
m3.add(mi4);
mi1.addActionListener(new SaveMenuItem());
mi2.addActionListener(new ReadMenuItem());
mi3.addActionListener(new deleteContent());
mi4.addActionListener(new showHelp());
mb.add(m1);
mb.add(m2);
mb.add(m3);
port1 = JOptionPane.showInputDialog(null,"服務器端口","端口號:" + "",JOptionPane.QUESTION_MESSAGE);
System.out.println("server port is "+port1);
SERVERPORT=getPort(port1);
System.out.println("server port is "+SERVERPORT);
this.setMenuBar(mb);
/* -------------------------組合各個部件和相互的關系----------------------------*/
this.setLayout(new BorderLayout(5, 5));
this.add(p2,BorderLayout.NORTH);
this.add(ta1, BorderLayout.CENTER);
this.add(p1, BorderLayout.SOUTH);
this.pack();//簡單整理一下部件布局
this.setLocation(LOCATION, LOCATION);
this.setVisible(true);
/*----------------------------關閉窗口------------------------------------------------*/
this.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
);
/* -------------------------------------------啟動server監聽端口是否有人連接----------- -----------------------------------------*/
receiveMessage waitMessage=new receiveMessage();//啟動server線程監聽是否有人連接
Thread td1=new Thread(waitMessage);
td1.start();
receiveFile waitFile=new receiveFile();
Thread td2=new Thread(waitFile);
td2.start();
}//構造函數結束
public String getIP()
{
String ip=t2.getText();
return ip;
}
public int getPort(String s)
{
if(s!="")
{
int s1=Integer.parseInt(s);
return s1;
}else return SERVERPORT;
}
/*-----------------------------delete chat content-----------------------------------------------------*/
class deleteContent implements ActionListener{
public void actionPerformed(ActionEvent e){
ta1.setText(null);
}
}
/*--------------------------------------顯示幫助文檔--------------------------------------------------*/
class showHelp implements ActionListener{
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null,"該作品制作人:王寧\n學號:05301052\n\n感謝大家對本產品的支持!");
}
}
/*-----------------save chat content-----------------------------*/
class SaveMenuItem implements ActionListener{//save chat message
public void actionPerformed(ActionEvent e)//保存信息
{
FileOutputStream out;
PrintStream p; //聲明一個Print Stream流
try {
out = new FileOutputStream("chatlog.txt",true);
p = new PrintStream( out );
p.println (ta1.getText());//方法println(),它將一個字符串發送給輸出流。
p.close();
} catch (Exception e1) {
System.err.println ("Error writing to file");
}
}
}
/*-------------------read chat content--------------------------*/
class ReadMenuItem implements ActionListener{//read chat message
public void actionPerformed(ActionEvent e){//讀取信息
//定義一個byte數組用于接收從文件中讀出的字節,注意它的長度為1024
byte[] buff = new byte[1024];
int n;
FileInputStream fis = null;
// 生成對象infile 準備讀取文件
try
{
File f=new File("chatlog.txt");
fis=new FileInputStream(f);
// 從文件讀取數據
while((n = fis.read(buff,0,1024))!=-1)
{
String s=new String(buff,0,n);
ta1.append(s);
fis.close();
}
}
catch (FileNotFoundException e1)
{
System.out.println("沒有找到文件");
System.exit(1);
}
catch (IOException e2)
{
System.out.println("");
}
//清理
finally
{
try
{
fis.close();
}
catch (IOException e3)
{
System.out.println("文件錯誤");
System.exit(1);
}
}
}
}
總結
以上是生活随笔為你收集整理的java聊天文件,java聊天小程序 (一个接口两个java文件)之一的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 重大疾病保险赔付流程
- 下一篇: xd中国重工什么意思