Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Le Programme suivant traitera un JTable de 3 Colonnes A, B et C dont les lignes seront remplis par des entiers
- //Les boutons Serialize, Deserialize et Sort existent.
- import java.util.ArrayList;
- import java.util.List;
- import javax.swing.JScrollPane;
- import javax.swing.*;
- import java.awt.*;
- import javax.swing.table.*;
- import java.io.*;
- import java.io.Serializable;
- import java.util.*;
- public class Ex implements Serializable{
- static JFrame F;
- static Panel P;
- static JButton B1;
- static JButton B2;
- static JButton B3;
- static MyListener listener;
- static MyTableListener Tlistener;
- static JTable tab;
- static DefaultTableModel data;
- int n=5; //Nombre de lignes
- static List<MyString> H1 = new ArrayList<MyString>(); //liste d'objets de type MyString contenant les donnes
- List<String> S1 = new ArrayList<String>(); //les colonnes
- List<String[]> Z1 = new ArrayList<String[]>(); //les lignes
- public void sortMethod() //try catch
- {
- /*
- Affichage de la liste d'objets H1 avant modification
- for(MyString ms: H1) {
- System.out.println(ms);
- }*/
- Collections.sort(H1);
- /*
- Affichage de la liste d'objets H1 apres modification
- System.out.println("\n");
- for(MyString ms: H1) {
- System.out.println(ms);
- }*/
- //Mise a jour du TableModel
- for(int i=0;i<n;i++) {
- Z1.set(i,H1.get(i).toArray2());
- }
- DefaultTableModel data3 = new DefaultTableModel(Z1.toArray(new Object[][] {}),S1.toArray());
- data3.addTableModelListener(Tlistener);
- data=data3;
- tab.setModel(data3);
- System.out.println("SORT called");
- }
- public void Serializer(Ex caller)
- {
- System.out.println("SER Called");
- try {
- final FileDialog fileDialog = new FileDialog(F,"Save file",FileDialog.SAVE);
- fileDialog.setVisible(true);
- FileOutputStream fs = new FileOutputStream(fileDialog.getDirectory()+fileDialog.getFile());
- ObjectOutputStream os = new ObjectOutputStream(fs);
- os.writeObject(caller);
- os.flush();
- os.close();
- } catch (FileNotFoundException e) {System.out.println("FileNotFoundException");}
- catch (IOException e) {System.out.println("IOException");}
- }
- public void Deserializer()
- {
- System.out.println("DES Called");
- Ex J = null;
- try {
- final FileDialog fileDialog = new FileDialog(F,"Select file",FileDialog.LOAD);
- fileDialog.setVisible(true);
- FileInputStream fis = new FileInputStream(fileDialog.getDirectory()+fileDialog.getFile());
- ObjectInputStream ois = new ObjectInputStream(fis);
- J = (Ex) ois.readObject();
- ois.close();
- DefaultTableModel data2 = new DefaultTableModel(J.Z1.toArray(new Object[][] {}), J.S1.toArray());
- data2.addTableModelListener(Tlistener);
- data=data2;
- tab.setModel(data2);
- } catch (FileNotFoundException e) {System.out.println("FileNotFoundException");}
- catch (IOException e) {System.out.println("IOException : wrong file type chosen.");}
- catch (ClassNotFoundException e) {System.out.println("ClassNotFoundException");}
- }
- Ex()
- {
- F = new JFrame();
- F.setLayout(new BorderLayout());
- P = new Panel(); //Pour contenir les boutons
- B1 = new JButton("Serialize");
- B2 = new JButton("Deserialize");
- B3 = new JButton("Sort");
- P.add(B1);
- P.add(B2);
- P.add(B3);
- F.add(P, BorderLayout.SOUTH);
- //Les noms des lignes
- S1.add("A");
- S1.add("B");
- S1.add("C");
- //Remplissage des lignes avec des nombres quelconques
- for (int i = 0; i < n; i++) {
- MyString O = new MyString(i+1,(i+1)*10,(i+1)*100);
- H1.add(O);
- Z1.add(new String[] {O.getA(),O.getB(),O.getC()});
- }
- //Affectation au TableModel et au JTable
- data = new DefaultTableModel(Z1.toArray(new Object[][] {}), S1.toArray());
- tab = new JTable(data);
- F.add(new JScrollPane(tab), BorderLayout.CENTER);
- F.add(tab.getTableHeader(), BorderLayout.NORTH);
- F.setTitle("My Ex");
- F.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- F.setSize(300,250);
- F.setVisible(true);
- }
- public static void main(String args[])
- {
- Ex THIS = new Ex();
- MyListener listener = new MyListener(THIS);
- B1.addActionListener(listener);
- B1.setActionCommand("Ser");
- B2.addActionListener(listener);
- B2.setActionCommand("Des");
- B3.addActionListener(listener);
- B3.setActionCommand("Sort");
- Tlistener = new MyTableListener(THIS);
- data.addTableModelListener(Tlistener);
- }
- }
- class MyString implements Comparable<MyString>{
- String A,B,C;
- MyString(int x,int y,int z)
- { A=Integer.toString(x);
- B=Integer.toString(y);
- C=Integer.toString(z);
- }
- String getA() { return A;}
- String getB() { return B;}
- String getC() { return C;}
- public int compareTo(MyString v ) //ici on va comparer sur la premiere colonne : A
- {
- int i = Integer.parseInt(A);
- int j = Integer.parseInt(v.A);
- if (i>j) return -1;
- else if(i==j) return 0;
- else return 1;
- }
- @Override
- public String toString()
- {return A+" "+B+" "+C;}
- String[] toArray2()
- {
- String[] r =new String[] {A,B,C};
- return r;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement