JTable aktualisiert nicht
Hallo,
Frage 1: ich habe eine Anwendung, bei der eine JTable je nach SQL-Abfrage neu befüllt werden soll. Die Abfrage wird in ein Array gespeichert und die Kopfspalten auch. Die Abfragen und die Vebindung zur Datanbank (Access) funktionieren. Leider aktualisiert das JTable nicht, wenn ich es das 2 mal fülle. Wenn ich per JButton das Tablemodel nochmals feuere, aktualisiert es. Wenn ich dann aber in eine anderes Windows-Programm wechsle und wieder die Anwendung maximiere, sind wieder die erstmals angezeigten Daten da.
Hab schon gegoogelt und hier etliche Artikel gelesen, aber es geht und geht nicht
Frage 2: Ich möchte Abfrage und Table in 2 Dateien speichern. Wie kann ich dateiübergreifend (von Ma.java nach JTable.java) die Arrays übergeben oder Comboboxen neu befüllen. Der Aufruf "Klasse.Combo1.addItem("Wert")" funktioniert nicht.
Bitte helft mir. Vielen Dank im Voraus.
Code Ma.java:
public class Ma extends JFrame{
// Ma nach Alter editieren
public static String getMaedit(int alter) {
// Abfrage String - Wie alt? - Verbindung "conn" wurde in MainForm.java hergestellt
return "";
}
// Create table with data and columns
public static String createTable(Object[][] data, String[] columnNames) {
Hallo,
Frage 1: ich habe eine Anwendung, bei der eine JTable je nach SQL-Abfrage neu befüllt werden soll. Die Abfrage wird in ein Array gespeichert und die Kopfspalten auch. Die Abfragen und die Vebindung zur Datanbank (Access) funktionieren. Leider aktualisiert das JTable nicht, wenn ich es das 2 mal fülle. Wenn ich per JButton das Tablemodel nochmals feuere, aktualisiert es. Wenn ich dann aber in eine anderes Windows-Programm wechsle und wieder die Anwendung maximiere, sind wieder die erstmals angezeigten Daten da.
Hab schon gegoogelt und hier etliche Artikel gelesen, aber es geht und geht nicht
Frage 2: Ich möchte Abfrage und Table in 2 Dateien speichern. Wie kann ich dateiübergreifend (von Ma.java nach JTable.java) die Arrays übergeben oder Comboboxen neu befüllen. Der Aufruf "Klasse.Combo1.addItem("Wert")" funktioniert nicht.
Bitte helft mir. Vielen Dank im Voraus.
Code Ma.java:
public class Ma extends JFrame{
static Object data[][];
static String[] columnNames;
DefaultTableModel model;
// Ma nach Alter editieren
public static String getMaedit(int alter) {
// Abfrage String - Wie alt? - Verbindung "conn" wurde in MainForm.java hergestellt
strSQL = "select * From ma order by nname where alter = " + alter;
try {
stmt = MainForm.conn.createStatement();
ResultSet rsma1 = stmt.executeQuery(strSQL);
ResultSet rsma1 = stmt.executeQuery(strSQL);
}
catch (SQLException ex) {
}
catch (SQLException ex) {
}
String columnNames[] = { "Pers.-ID", "Name", "Vorname", "Urlaub",
"Zugriff", "Status", "Login", "Passwort", "Kennzeichen",
"Erster tag", "Löschen" };
//Array erzeugen[Anzahl Zeilen][Anzahl Spalten]
Object data[][] = new Object[recordsint][11];
// Die Datensätze in Array speichern
int rsma1count = 0;
try {
"Zugriff", "Status", "Login", "Passwort", "Kennzeichen",
"Erster tag", "Löschen" };
//Array erzeugen[Anzahl Zeilen][Anzahl Spalten]
Object data[][] = new Object[recordsint][11];
// Die Datensätze in Array speichern
int rsma1count = 0;
try {
while (rsma1.next()) {
data[rsma1count][0] = rsma1.getObject("maid");
data[rsma1count][1] = rsma1.getString("nname");
data[rsma1count][2] = rsma1.getString("vname");
data[rsma1count][3] = rsma1.getString("uanspr");
data[rsma1count][4] =rsma1.getStting("zugriff");
data[rsma1count][5] =rsma1.getString("gesperrt")
data[rsma1count][6] = rsma1.getString("login");
data[rsma1count][7] = rsma1.getString("pwd");
data[rsma1count][8] = rsma1.getString("kz");
data[rsma1count][9] = rsma1.getString("erstertag");
data[rsma1count][10] = "Löschen";
rsma1count = rsma1count + 1;
data[rsma1count][1] = rsma1.getString("nname");
data[rsma1count][2] = rsma1.getString("vname");
data[rsma1count][3] = rsma1.getString("uanspr");
data[rsma1count][4] =rsma1.getStting("zugriff");
data[rsma1count][5] =rsma1.getString("gesperrt")
data[rsma1count][6] = rsma1.getString("login");
data[rsma1count][7] = rsma1.getString("pwd");
data[rsma1count][8] = rsma1.getString("kz");
data[rsma1count][9] = rsma1.getString("erstertag");
data[rsma1count][10] = "Löschen";
rsma1count = rsma1count + 1;
}
rsma1.close();
stmt.close();
conn.close();
rsma1.close();
stmt.close();
conn.close();
}
catch (SQLException ex1) {
}
}
//Arrays an Table Modell übergeben
createTable(data, columnNames);
}createTable(data, columnNames);
return "";
}
// Create table with data and columns
public static String createTable(Object[][] data, String[] columnNames) {
// create table model
model = new DefaultTableModel();
model.setDataVector(data, columnNames);
model.fireTableDataChanged();
model.fireTableStructureChanged();
// give the model to the table
JTable table = new JTable();
table.setModel(model);
JScrollPane scrollPane = new JScrollPane(table);
getContentPane().add(scrollPane, BorderLayout.CENTER);
scrollPane.setBounds(new Rectangle(5, 165, 988, 470));
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
return "";
}
}model = new DefaultTableModel();
model.setDataVector(data, columnNames);
model.fireTableDataChanged();
model.fireTableStructureChanged();
// give the model to the table
JTable table = new JTable();
table.setModel(model);
JScrollPane scrollPane = new JScrollPane(table);
getContentPane().add(scrollPane, BorderLayout.CENTER);
scrollPane.setBounds(new Rectangle(5, 165, 988, 470));
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
return "";
}
Zuletzt bearbeitet: