[java]代码库
package org.file.win;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import org.file.bean.FileBean;
import org.file.util.Search;
public class SearchFrame{
private static JFrame jf = new JFrame("search - file 软件");
private static JTable table;
private static JTextField jText = new JTextField(30);
private static JButton jButton = new JButton("搜索");
private static JPanel panel = new JPanel();
private static final Vector<String> columnNames = new Vector<String>();
private static volatile Vector<Vector<Object>> searchData = new Vector<Vector<Object>>();
static{
columnNames.add("名称");
columnNames.add("位置");
columnNames.add("类型");
columnNames.add("修改时间");
columnNames.add("大小");
}
public SearchFrame()
{
Toolkit kit=Toolkit.getDefaultToolkit();
Dimension screenSize=kit.getScreenSize();
int screenWidth=screenSize.width;
int screenHeight=screenSize.height;
jf.setSize(screenWidth/2, 500);
jf.setLocation(screenWidth/4, screenHeight/4);
panel.add(jText);
panel.add(jButton);
jButton.addActionListener(new ActionListener() {
public synchronized void actionPerformed(ActionEvent e) {
String path = jText.getText();
ReftableData.refData(null,false);
Search.search(path);
}
});
jf.add(panel,BorderLayout.NORTH);
//以二维数组和一维数组来创建一个JTable对象
table = new JTable();
table.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e) {
if(e.getClickCount()==1){
int row = table.getSelectedRow();
jText.setText((String)table.getValueAt(row, 1));
}
}
});
table.setShowGrid(true);
synchronized (searchData) {
CheckTableModle tableModel= new CheckTableModle(searchData,columnNames);
table.setModel(tableModel);
jf.add(new JScrollPane(table),BorderLayout.SOUTH);
jf.pack();
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setVisible(true);
}
}
public static class CheckTableModle extends DefaultTableModel {
private static final long serialVersionUID = 1L;
public CheckTableModle( Vector<Vector<Object>> data, Vector<String> columnNames) {
super(data,columnNames);
}
}
public static void main(String[] args)
{
new SearchFrame();
try {
ServerSocket server = new ServerSocket(8888);
while (true) {
Socket client = server.accept();
new Thread(new ServiceSocket(client)).start();
}
} catch (IOException e) {
e.printStackTrace();
}
}
//服务器进程
static class ServiceSocket implements Runnable {
Socket client;
public ServiceSocket(Socket client) {
this.client = client;
}
public synchronized void run() {
try {
//3.获得输入流
InputStream is = client.getInputStream();
//获得流:可以对对象进行反序列化
ObjectInputStream ois=new ObjectInputStream(is);
//4.读取用户输入信息
FileBean bean = (FileBean)ois.readObject();
System.out.println("接收:" + bean.getName() + " - "+bean.getPath() + " - "+bean.getSize() + " - "+bean.getType()+ " - "+ bean.getTime());
Vector<Object> v = new Vector<Object>();
if(bean !=null){
v.add(bean.getName());
v.add(bean.getPath());
v.add("1");
v.add("1");
v.add("1");
}
ReftableData.refData(v,true);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
static class ReftableData{
public synchronized static void refData(Vector<Object> bean,boolean flag){
if(flag)
searchData.add(bean);
else
searchData = new Vector<Vector<Object>>();
System.out.println(searchData + "-------------------------" + searchData.size());
CheckTableModle tableModel=new CheckTableModle(searchData,columnNames);
table.setModel(tableModel);
table.validate();
table.repaint();
}
}
} <img src="http://static.oschina.net/uploads/space/2013/1013/173612_fDLq_858822.jpg" alt=""><span></span> //源代码片段来自云代码http://yuncode.net