資源簡介
使用java實現(xiàn)的簡單版飛鴿傳書,可以單聊、群聊、發(fā)送文件,使用UPD獲取在線用戶及聊天,使用TCP發(fā)送文件。代碼比較簡潔,界面工整,學習使用。

代碼片段和文件信息
package?com.ipmsg;
import?java.awt.event.ActionEvent;
import?java.awt.event.ActionListener;
import?java.awt.event.WindowAdapter;
import?java.awt.event.WindowEvent;
import?java.io.File;
import?java.io.IOException;
import?java.net.InetAddress;
import?java.text.SimpleDateFormat;
import?java.util.ArrayList;
import?java.util.Date;
import?java.util.HashMap;
import?java.util.List;
import?java.util.Map;
import?javax.swing.JButton;
import?javax.swing.JFileChooser;
import?javax.swing.Jframe;
import?javax.swing.JLabel;
import?javax.swing.JOptionPane;
import?javax.swing.JScrollPane;
import?javax.swing.JTable;
import?javax.swing.JTextArea;
import?javax.swing.table.DefaultTableColumnModel;
import?javax.swing.table.DefaultTableModel;
import?javax.swing.table.JTableHeader;
public?class?MainWindow?{
private?static?final?SimpleDateFormat?sdf?=?new?SimpleDateFormat(“yyyy-MM-dd?HH:mm:ss“);
private?static?object?lock?=?new?object();
private?Jframe?window;
private?JTable?table;
private?object[]?columnNames?=?{?“用戶名“?“主機名“?“IP地址“?“port“?};
private?JTextArea?inputArea;
private?JButton?btn_send;
private?JButton?btn_choose;
private?JFileChooser?filechooser?=?new?JFileChooser();
private?JLabel?fileLabel?=?new?JLabel();
private?String?myName?=?““;
private?UDPService?udpService;
private?static?MainWindow?mainWindow;
private?void?createWindow()?{
window?=?new?Jframe(“IP?Messager?for?Java“);
window.setLayout(null);
window.setBounds(600?300?400?400);
window.setResizable(false);
window.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
DefaultTableModel?tableModel?=?new?DefaultTableModel(null?columnNames);
table?=?new?JTable(tableModel){
private?static?final?long?serialVersionUID?=?1L;
@Override
public?boolean?isCellEditable(int?row?int?column)?{
return?false;
}
};
JScrollPane?tableScroll?=?new?JScrollPane();
JTableHeader?header?=?table.getTableHeader();
header.setBounds(0?0?400?20);
table.setBounds(0?20?400?180);
DefaultTableColumnModel?columnModel?=?(DefaultTableColumnModel)?table.getColumnModel();
columnModel.removeColumn(columnModel.getColumn(3));
tableScroll.setViewportView(header);
tableScroll.setViewportView(table);
tableScroll.setBounds(0?0?400?200);
tableScroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
tableScroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
window.add(tableScroll);
inputArea?=?new?JTextArea();
inputArea.setBounds(0?0?395?100);
inputArea.setLineWrap(true);
JScrollPane?inputScroll?=?new?JScrollPane(inputArea);
inputScroll.setBounds(0?200?395?100);
inputScroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
window.add(inputScroll);
btn_send?=?new?JButton(“發(fā)送“);
btn_send.setBounds(260?320?100?30);
window.add(btn_send);
btn_choose?=?new?JButton(“選擇文件“);
btn_choose.setB
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????232??2014-06-12?20:23??simple_ipmsg\.classpath
?????文件????????388??2014-06-11?14:18??simple_ipmsg\.project
?????文件?????????57??2014-06-11?14:58??simple_ipmsg\.settings\org.eclipse.core.resources.prefs
?????文件????????598??2014-06-14?09:43??simple_ipmsg\.settings\org.eclipse.jdt.core.prefs
?????文件????????785??2014-06-14?12:09??simple_ipmsg\bin\com\ipmsg\MainWindow$1.class
?????文件????????957??2014-06-14?12:09??simple_ipmsg\bin\com\ipmsg\MainWindow$2.class
?????文件???????3331??2014-06-14?12:09??simple_ipmsg\bin\com\ipmsg\MainWindow$3.class
?????文件???????1296??2014-06-14?12:09??simple_ipmsg\bin\com\ipmsg\MainWindow$4.class
?????文件???????3301??2014-06-14?12:09??simple_ipmsg\bin\com\ipmsg\MainWindow$ReceiveThread.class
?????文件???????8197??2014-06-14?12:09??simple_ipmsg\bin\com\ipmsg\MainWindow.class
?????文件???????1685??2014-06-14?12:12??simple_ipmsg\bin\com\ipmsg\MsgWindow$1.class
?????文件????????862??2014-06-14?12:12??simple_ipmsg\bin\com\ipmsg\MsgWindow$2$1.class
?????文件???????1940??2014-06-14?12:12??simple_ipmsg\bin\com\ipmsg\MsgWindow$2.class
?????文件????????670??2014-06-14?12:12??simple_ipmsg\bin\com\ipmsg\MsgWindow$3.class
?????文件????????643??2014-06-14?12:12??simple_ipmsg\bin\com\ipmsg\MsgWindow$4.class
?????文件???????3195??2014-06-14?12:12??simple_ipmsg\bin\com\ipmsg\MsgWindow$ReceiveFile.class
?????文件???????4922??2014-06-14?12:12??simple_ipmsg\bin\com\ipmsg\MsgWindow.class
?????文件???????2334??2014-06-14?10:55??simple_ipmsg\bin\com\ipmsg\TCPService$SendFile.class
?????文件???????1196??2014-06-14?10:55??simple_ipmsg\bin\com\ipmsg\TCPService$SendFileServer.class
?????文件???????1388??2014-06-14?10:55??simple_ipmsg\bin\com\ipmsg\TCPService.class
?????文件???????2334??2014-06-14?10:55??simple_ipmsg\bin\com\ipmsg\UDPService.class
?????文件???????8943??2014-06-14?12:09??simple_ipmsg\src\com\ipmsg\MainWindow.java
?????文件???????6727??2014-06-14?12:12??simple_ipmsg\src\com\ipmsg\MsgWindow.java
?????文件???????2390??2014-06-14?09:58??simple_ipmsg\src\com\ipmsg\TCPService.java
?????文件???????1478??2014-06-14?01:29??simple_ipmsg\src\com\ipmsg\UDPService.java
?????目錄??????????0??2014-06-14?10:55??simple_ipmsg\bin\com\ipmsg
?????目錄??????????0??2014-06-14?09:42??simple_ipmsg\src\com\ipmsg
?????目錄??????????0??2014-06-14?10:55??simple_ipmsg\bin\com
?????目錄??????????0??2014-06-14?09:42??simple_ipmsg\src\com
?????目錄??????????0??2014-06-14?09:42??simple_ipmsg\.settings
............此處省略6個文件信息
評論
共有 條評論