А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Э Ю Я Все примеры | Примеры по пакетам |
|
//Клиент считывает текстовый csv-файл с сервера и выводит его на фрейм;
//Данные распознаются и по ним строится таблица на фрейме;
package MultiThreadServer;
import serverCSV.*;
import java.awt.event.ActionEvent;
import java.io.*;
import java.net.*;
import java.util.Vector;
import javax.swing.AbstractAction;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class NetClientCSVFrame {
static JFrame frame = new JFrame("");
static DefaultTableModel dtm;
static String[] tableData;
static Vector rowData=new Vector();
//Вектор, представляющий строку таблицы
static Vector< Vector> rows = new Vector< Vector>();
//Вектор векторов, хранящий всю таблицу
static Vector columns = new Vector();
static JTable jtb;
private static void createAndShowGUI() {
JButton jb=new JButton(action);
JButton jb1=new JButton(action1);
Box box = new Box(BoxLayout.Y_AXIS);
box.add(jb);
box.add(jb1);
Vector row = new Vector();
row.add( "" );
row.add( "" );
row.add( "" );
rows.add( row );
columns.add ( "a" );
columns.add ( "b" );
columns.add ( "c" );
dtm = new DefaultTableModel(rows, columns);
jtb=new JTable(dtm);
box.add(jtb);
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
frame.getContentPane().add(box);
frame.setSize(500, 333);
frame.setVisible(true);
}
public static AbstractAction action =
new AbstractAction("Чтение данных из файла") {
public void actionPerformed(ActionEvent evt) {
try {
String strPage = "";
try {
readTable();
} catch (Exception ex) {
}
} catch (Exception ex) {
}
}
};
public static AbstractAction action1 =
new AbstractAction("Запись данных в файл") {
public void actionPerformed(ActionEvent evt) {
try {
String strPage = "";
try {
writeTable();
} catch (Exception ex) {
}
} catch (Exception ex) {
}
}
};
private static void readTable(){
Socket client = null;
int portnumber = 1234;
try {
String msg = "";
client = new Socket(InetAddress.getLocalHost(), portnumber);
OutputStream clientOut = client.getOutputStream();
PrintWriter pw = new PrintWriter(clientOut, true);
InputStream clientIn = client.getInputStream();
BufferedReader br = new BufferedReader(new
InputStreamReader(clientIn));
BufferedReader stdIn = new BufferedReader(new
InputStreamReader(System.in));
msg="read ";
pw.println(msg);
String servOut=br.readLine();
rows.clear();
System.out.println("Данные от сервера: " +servOut );
String[] str;
String[] str1;
str= servOut.split(" CRLF");
System.out.println("str[0] "+str[0]);
System.out.println("str[0] "+str[1]);
for(int i=0;i< str.length;i++){
str1= str[i].split(",");
rowData=new Vector();
for(int ii=0;ii< str1.length;ii++){
rowData.add(str1[ii]);
}
rows.add(rowData);
}
dtm.fireTableDataChanged();
} catch (IOException ie) {
System.out.println("I/O error " + ie);
}
}
private static void writeTable(){
Socket client = null;
int portnumber = 1234;
try {
String msg = "";
client = new Socket(InetAddress.getLocalHost(), portnumber);
OutputStream clientOut = client.getOutputStream();
PrintWriter pw = new PrintWriter(clientOut, true);
InputStream clientIn = client.getInputStream();
BufferedReader br = new BufferedReader(new
InputStreamReader(clientIn));
BufferedReader stdIn = new BufferedReader(new
InputStreamReader(System.in));
msg="write ";
String str11="";
String strOut="";
//В цикле создается строка в формате csv.
if(rows.size()!=0){
for(int i=0;i< rows.size();i++){
str11="";
for(int ii=0;ii< rows.get(i).size();ii++){
if(!str11.equals("")){
str11=str11+","+ rows.get(i).get(ii);
}
else{
str11=rows.get(i).get(ii).toString();
}
}
strOut=strOut+str11+" CRLF";
}
pw.println(msg+ strOut);
}
else{
pw.println(msg);
}
String servOut=br.readLine();
System.out.println("Данные от сервера: " +servOut );
dtm.fireTableDataChanged();
} catch (IOException ie) {
System.out.println("I/O error " + ie);
}
}
public static void main(String args[]) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
Многопоточный сервер с защитой ресурса от одновременного доступа; |
|
|
|
|