Java - Aktualisierung von JTable mit fireTableDataChanged();

Ich habe eine JTable in meinem Programm. Ich möchte Sie zu aktualisieren nach Klick auf JButton.
Ich schrieb:

DefaultTableModel myTable = new DefaultTableModel(celDatas,celNames);
        JTable source = new JTable(myTable){public boolean isCellEditable(int rowIndex, int colIndex) {
  return false;}};
        JScrollPane pane = new JScrollPane(source);

(...)
    start.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e)
        {
                    query = "Select sal FROM EMP";
    myTable =(DefaultTableModel)source.getModel();
                myTable.fireTableDataChanged();
}

Das problem ist, dass id nicht aktualisieren meine Daten auf JTable.
Wie dieses problem zu beheben?


BEARBEITEN:
JTable angezeigt wird in meinem Kerl durch JScrollPane.
Ich mache nun Folgendes:

   source = new JTable(myTable){public boolean isCellEditable(int rowIndex, int colIndex) {return false;}};
   pane = new JScrollPane(source);

Machte ich auch eine neue leere, wo immer Daten aus der Datenbank + da ich definiere myTable:

void queryConnection() {
   (...)
        myTable = new DefaultTableModel(celDatas,celNames);

}

Hinzugefügt habe ich einen JButton, der update meiner JTable (wenn wir die Abfrage ändern.

start.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e)
    {
          query = "Select sal FROM EMP";
          queryConnection();
    }
}

================================================================================

public class Application2 implements Runnable {
private JTable source;
   private JScrollPane pane;
   private DefaultTableModel myTable;

   private JPanel panel;

   private String[][] celDatas = null;
   private String[] celNames = null;

   public void run() {


(...)


start.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e)
        {
            if(...) {

                query = "Select sal FROM EMP";
                queryConnection();
            }
}

if(query == null) {
            query = "Select * from EMP";
            queryConnection();
        }

        source = new JTable(myTable){public boolean isCellEditable(int rowIndex, int colIndex) {return false;}};
        pane = new JScrollPane(source);
        pane.setSize(f.getSize().width-60,300);
        pane.setLocation(30,20);

panel.add(pane);
f.add(panel);
        f.pack();
}
void queryConnection() {


//here is connection and downloading datas

myTable = new DefaultTableModel(celDatas,celNames);

}

Ich hoffe, dass es jetzt bequemer? 😉

in dem obigen code, die Sie havent geändert nichts in der Quelle(DefaultTableModel)!
Für bessere Hilfe früher, nach einem SSCCE.
warum hast du neu eine JTable mit seinem Modell, hast du das Problem mit der Anzeige JTable nach JButton geklickt???
weil wenn ich auf JButton, erstellen, Daten in String-arrays celDatas und celNames. Wenn ich JTable, BEVOR JButton, es zeigt Fehler.

InformationsquelleAutor Ganjira | 2012-04-15

Schreibe einen Kommentar