[JTable] Problème pour rafraichir
bonjour a tous,
j'utilise un model dans lequel je met mes données dans une varable du type Object[][]. j'ai fait une methode qui me permet de mettre a jour les
donnees:
Code:
1 2 3 4 5 6 7 8 9 10 11
|
public class TabModel extends AbstractTableModel {
private String[] columnNames = null;
private Object[][] data = null;
public void setData(Object[][] data) {
this.data = data;
fireTableDataChanged();
}
...
} |
ensuite j'ai creer un jdialog dans lequel j'ai mis une jtable et je met a jour les données suivant l'etat d'un jbutton de la maniere suivante :
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 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
|
public class HeritageDiag extends JDialog {
private javax.swing.JPanel jContentPane = null;
private JRadioButton jRadioButton = null;
private JRadioButton jRadioButton1 = null;
private JPanel jPanel = null;
private JTable jTable = null;
private JScrollPane jScrollPane = null;
public HeritageDiag(Frame owner) {
super(owner);
initialize();
this.setLocationRelativeTo(owner);
}
private void initialize() {
this.setTitle("Historique");
this.setSize(500, 350);
this.setContentPane(getJContentPane());
}
private javax.swing.JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new javax.swing.JPanel();
jContentPane.setLayout(new java.awt.BorderLayout());
jContentPane.add(getJPanel(), java.awt.BorderLayout.NORTH);
jContentPane.add(getJScrollPane(), java.awt.BorderLayout.CENTER);
jContentPane.add(getJTextField(), java.awt.BorderLayout.SOUTH);
getButtonGroup();
}
return jContentPane;
}
private JRadioButton getJRadioButton() {
if (jRadioButton == null) {
jRadioButton = new JRadioButton();
jRadioButton.setText("etat");
jRadioButton.setSelected(true);
jRadioButton.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent e) {
if (jRadioButton.isSelected()) {
((TabModel) getJTable().getModel()).setData(getStatFilesObj());
}
}
});
}
return jRadioButton;
}
private JRadioButton getJRadioButton1() {
if (jRadioButton1 == null) {
jRadioButton1 = new JRadioButton();
jRadioButton1.setText("rapport");
jRadioButton1.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent e) {
if (jRadioButton1.isSelected()) {
((TabModel) getJTable().getModel()).setData(getOutFilesObj());
}
}
});
}
return jRadioButton1;
}
private JPanel getJPanel() {
if (jPanel == null) {
jPanel = new JPanel();
jPanel.add(getJRadioButton(), null);
jPanel.add(getJRadioButton1(), null);
}
return jPanel;
}
private JTable getJTable() {
if (jTable == null) {
jTable = new JTable();
TabModel myTabModal = new TabModel();
String[] ColumnName = { "N°", "date/heure", "fichier" };
myTabModal.setColumnNames(ColumnName);
Object[][] dataEtat = { { new Integer(0), new Date(), "fichier" } };
myTabModal.setData(getStatFilesObj());
jTable.setModel(myTabModal);
jTable.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent e) {
if (e.getClickCount() == 2) {
if (getJRadioButton().isSelected()) {
openFile((File) getStatFiles().get(jTable.getSelectedRow()));
} else {
openFile((File) getOutFiles().get(jTable.getSelectedRow()));
}
//getJScrollPane().repaint();
}
}
});
}
return jTable;
}
private JScrollPane getJScrollPane() {
if (jScrollPane == null) {
jScrollPane = new JScrollPane();
jScrollPane.setViewportView(getJTable());
}
return jScrollPane;
}
private ButtonGroup getButtonGroup() {
if (buttonGroup == null) {
buttonGroup = new ButtonGroup();
buttonGroup.add(getJRadioButton());
buttonGroup.add(getJRadioButton1());
}
return buttonGroup;
}
...
} |
j'ai remarquer que lorsque je redimentionne le jdialog la table
se met a jour.