Problème TableSorter Jtable
Bonjour,
Alors j'ai lu avec attention les tutorials et fait des recherches dans ce forum mais je n'arrive toujours pas à comprendre comment trier mon tableau. Voici le code de mon main Panel :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| public MainPanel() {
super("Search");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocation(300, 300);
final JPanel mainFiller = new JPanel();
mainFiller.setLayout(new BoxLayout(mainFiller, BoxLayout.PAGE_AXIS));
final JPanel searchPanel = new JPanel(new FlowLayout());
final JMenuBar barre = new JMenuBar() ;
this.setJMenuBar(barre);
final JMenu Menu = new JMenu("Menu");
barre.add(Menu);
final JMenuItem dictionnaire = new JMenuItem("Dictionary");
Menu.add(dictionnaire);
dictionnaire.addActionListener(new ActionListener(){
public void actionPerformed(final ActionEvent e){executerActionDico();}
});
final JMenuItem pattern = new JMenuItem("Add Regular Expression");
Menu.add(pattern);
pattern.addActionListener(new ActionListener(){
public void actionPerformed(final ActionEvent e){executerActionPattern();}
});
Menu.addSeparator(); // on ajoute un séparateur entre ouvrir et quitter
final JMenuItem quitter = new JMenuItem("Quit");
Menu.add(quitter);
quitter.addActionListener(new ActionListener(){
public void actionPerformed(final ActionEvent e){executerActionQuitter();}
});
fileName1 = new JTextField(30);
fileName1.addKeyListener(this);
fileName2 = new JTextField(30);
fileName2.addKeyListener(this);
generateButton = new JButton("Generate words");
generateButton.addActionListener(new ActionListener(){
public void actionPerformed(final ActionEvent e){executerActionGenerate();}
});
searchPanel.add(new JLabel("Domain Collection: "));
searchPanel.add(fileName1);
searchPanel.add(new JLabel("Reference Collection: "));
searchPanel.add(fileName2);
searchPanel.add(generateButton);
resultList = new JTable();
resultList.setModel(new DefaultTableModel(new Object[0][0], columnNames));
resultList.getColumnModel().getColumn(0).setPreferredWidth(70);
resultList.getColumnModel().getColumn(1).setPreferredWidth(150);
resultList.getColumnModel().getColumn(2).setPreferredWidth(60);
resultList.getColumnModel().getColumn(3).setPreferredWidth(60);
resultList.getColumnModel().getColumn(4).setPreferredWidth(150);
resultList.getColumnModel().getColumn(5).setPreferredWidth(150);
mainFiller.add(searchPanel);
final JPanel resultPanel = new JPanel(new BorderLayout());
final JScrollPane scroller = new JScrollPane(resultList);
scroller.setBorder(BorderFactory.createEtchedBorder());
resultPanel.add(scroller, BorderLayout.CENTER);
mainFiller.add(resultPanel);
this.getContentPane().add(mainFiller);
this.pack();
this.show();
} |
J'ai intégré la classe MyTableModel pour pouvoir lancer ces lignes de code :
Code:
1 2 3 4 5
| TableSorter sorter = new TableSorter(new TableModel( ));
JTable tableau = new JTable(sorter);
sorter.setTableHeader(tableau.getTableHeader()); |
A l'étape initial mon tableau est vide puis lors de l'action sur le bouton generate, il se remplis, voici le code actuel de l'action :
Code:
1 2 3 4 5
| protected void executerActionGenerate() {
final DefaultTableModel model = (DefaultTableModel)resultList.getModel();
model.setNumRows(0);
Process p = new Process(fileName1.getText(),fileName2.getText(), model);
} |
Le constructeur process remplit mon tableau.
J'ai réussi à l'étape initial à observer un tri avec des données que j'avais mises dans le tableau mais comment faire pour la suite ? Je suis perdu..Aidez moi svp...