Advertisement
Guest User

Untitled

a guest
Apr 30th, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.97 KB | None | 0 0
  1. //Le Programme suivant traitera un JTable de 3 Colonnes A, B et C dont les lignes seront remplis par des entiers
  2. //Les boutons Serialize, Deserialize et Sort existent.
  3.  
  4. import java.util.ArrayList;
  5. import java.util.List;
  6. import javax.swing.JScrollPane;
  7. import javax.swing.*;
  8. import java.awt.*;
  9. import javax.swing.table.*;
  10. import java.io.*;
  11. import java.io.Serializable;
  12. import java.util.*;
  13.  
  14. public class Ex implements Serializable{
  15.  static JFrame F;
  16.  static Panel P;
  17.  static JButton B1;
  18.  static JButton B2;
  19.  static JButton B3;
  20.  static MyListener listener;
  21.  static MyTableListener Tlistener;
  22.  static JTable tab;
  23.  static DefaultTableModel data;
  24.  int n=5; //Nombre de lignes
  25.  static List<MyString> H1 = new ArrayList<MyString>(); //liste d'objets de type MyString contenant les donnes
  26.  List<String> S1 = new ArrayList<String>(); //les colonnes
  27.     List<String[]> Z1 = new ArrayList<String[]>(); //les lignes
  28.  
  29.  public void sortMethod() //try catch
  30.  {
  31.   /*
  32.   Affichage de la liste d'objets H1 avant modification
  33.   for(MyString ms: H1) {
  34.    System.out.println(ms);
  35.   }*/
  36.    Collections.sort(H1);
  37.   /*
  38.   Affichage de la liste d'objets H1 apres modification
  39.   System.out.println("\n");
  40.   for(MyString ms: H1) {
  41.    System.out.println(ms);
  42.   }*/
  43.  
  44.   //Mise a jour du TableModel
  45.   for(int i=0;i<n;i++) {
  46.    Z1.set(i,H1.get(i).toArray2());
  47.   }
  48.   DefaultTableModel data3 = new DefaultTableModel(Z1.toArray(new Object[][] {}),S1.toArray());
  49.   data3.addTableModelListener(Tlistener);
  50.   data=data3;
  51.   tab.setModel(data3);
  52.   System.out.println("SORT called");
  53.  }
  54.  
  55.  public void Serializer(Ex caller)
  56.  {
  57.   System.out.println("SER Called");
  58.   try {
  59.    final FileDialog fileDialog = new FileDialog(F,"Save file",FileDialog.SAVE);
  60.    fileDialog.setVisible(true);
  61.    FileOutputStream fs = new FileOutputStream(fileDialog.getDirectory()+fileDialog.getFile());
  62.    ObjectOutputStream os = new ObjectOutputStream(fs);
  63.    os.writeObject(caller);
  64.    os.flush();
  65.    os.close();
  66.   } catch (FileNotFoundException e) {System.out.println("FileNotFoundException");}
  67.     catch (IOException e) {System.out.println("IOException");}
  68.  
  69.  }
  70.  
  71.  public void Deserializer()
  72.  {
  73.   System.out.println("DES Called");
  74.   Ex J = null;
  75.   try {
  76.   final FileDialog fileDialog = new FileDialog(F,"Select file",FileDialog.LOAD);
  77.   fileDialog.setVisible(true);
  78.   FileInputStream fis = new FileInputStream(fileDialog.getDirectory()+fileDialog.getFile());
  79.   ObjectInputStream ois = new ObjectInputStream(fis);
  80.   J = (Ex) ois.readObject();
  81.   ois.close();
  82.   DefaultTableModel data2 = new DefaultTableModel(J.Z1.toArray(new Object[][] {}), J.S1.toArray());
  83.   data2.addTableModelListener(Tlistener);
  84.   data=data2;
  85.   tab.setModel(data2);
  86.   } catch (FileNotFoundException e) {System.out.println("FileNotFoundException");}
  87.     catch (IOException e) {System.out.println("IOException : wrong file type chosen.");}
  88.     catch (ClassNotFoundException e) {System.out.println("ClassNotFoundException");}
  89.  }
  90.  
  91.  Ex()
  92.  {
  93.   F = new JFrame();
  94.   F.setLayout(new BorderLayout());
  95.   P = new Panel(); //Pour contenir les boutons
  96.   B1 = new JButton("Serialize");
  97.   B2 = new JButton("Deserialize");
  98.   B3 = new JButton("Sort");
  99.   P.add(B1);
  100.   P.add(B2);
  101.   P.add(B3);
  102.   F.add(P, BorderLayout.SOUTH);
  103.  
  104.   //Les noms des lignes
  105.   S1.add("A");
  106.   S1.add("B");
  107.   S1.add("C");
  108.  
  109.   //Remplissage des lignes avec des nombres quelconques
  110.   for (int i = 0; i < n; i++) {
  111.    MyString O = new MyString(i+1,(i+1)*10,(i+1)*100);
  112.    H1.add(O);
  113.    Z1.add(new String[] {O.getA(),O.getB(),O.getC()});
  114.    }
  115.    
  116.   //Affectation au TableModel et au JTable
  117.   data = new DefaultTableModel(Z1.toArray(new Object[][] {}), S1.toArray());
  118.   tab = new JTable(data);
  119.         F.add(new JScrollPane(tab), BorderLayout.CENTER);
  120.         F.add(tab.getTableHeader(), BorderLayout.NORTH);
  121.  
  122.   F.setTitle("My Ex");
  123.   F.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  124.   F.setSize(300,250);
  125.   F.setVisible(true);
  126.  }
  127.  
  128.  public static void main(String args[])
  129.  {
  130.   Ex THIS = new Ex();
  131.   MyListener listener = new MyListener(THIS);
  132.   B1.addActionListener(listener);
  133.   B1.setActionCommand("Ser");
  134.   B2.addActionListener(listener);
  135.   B2.setActionCommand("Des");
  136.   B3.addActionListener(listener);
  137.   B3.setActionCommand("Sort");
  138.  
  139.   Tlistener = new MyTableListener(THIS);
  140.   data.addTableModelListener(Tlistener);
  141.  }
  142. }
  143.  
  144. class MyString implements Comparable<MyString>{
  145.  String A,B,C;
  146.  MyString(int x,int y,int z)
  147.   { A=Integer.toString(x);
  148.    B=Integer.toString(y);
  149.    C=Integer.toString(z);
  150.   }
  151.  String getA() { return A;}
  152.  String getB() { return B;}
  153.  String getC() { return C;}
  154.  public int compareTo(MyString v ) //ici on va comparer sur la premiere colonne : A
  155.  {
  156.   int i = Integer.parseInt(A);
  157.   int j = Integer.parseInt(v.A);
  158.   if (i>j) return -1;
  159.   else if(i==j) return 0;
  160.   else return 1;
  161.  }
  162.  
  163.  @Override
  164.  public String toString()
  165.  {return A+" "+B+" "+C;}
  166.  
  167.  String[] toArray2()
  168.  {
  169.   String[] r =new String[] {A,B,C};
  170.   return r;
  171.  
  172.  }
  173. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement