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 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()
{
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);
public synchronized void actionPerformed
(ActionEvent e
) {
String path
= jText.
getText();
ReftableData.refData(null,false);
Search.search(path);
}
});
//以二维数组和一维数组来创建一个JTable对象
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.pack();
jf.
setDefaultCloseOperation(JFrame.
EXIT_ON_CLOSE);
jf.setVisible(true);
}
}
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 {
while (true) {
Socket client
= server.
accept();
new Thread(new ServiceSocket
(client
)).
start();
}
e.printStackTrace();
}
}
//服务器进程
static class ServiceSocket
implements Runnable {
public ServiceSocket
(Socket client
) {
this.client = client;
}
public synchronized void run() {
try {
//3.获得输入流
//获得流:可以对对象进行反序列化
//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);
// TODO Auto-generated catch block
e.printStackTrace();
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