Rambler's Top100

А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Э Ю Я

Все примеры | Примеры по пакетам

 //Клиент считывает текстовый 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();
            }
        });

    }
}

Многопоточный сервер с защитой ресурса от одновременного доступа;
Rambler's Top100


Ассоциативные ссылки