Hallo ich bekomme mein JTable leider nicht aktualisiert... vielleicht könnt ihr mir ja helfen?
Also ich programmiere zur Zeit ein Woerterbuch in Java mit einer Access DB wo die wörter drin gespeichert sind.
so jetzt habe ich die Klasse VokabelLoeschen dort holt er sich die Vokabeln per Aufruf von einer Klasse HoleEintrage (dort sind alle Methoden Zentral abgelegt)
In der Klasse VokabelLoeschen ist ein Button der an einem ActionListener namens BearbeiterVokabelLoeschen hängt.
Beim Start von VokabelLoeschen klappt alles Prima die Wörter werden in einer JTable richtig ausgegeben !
Beim markieren einer Zeile und ein Klick auf den Button klappt auch der löscht auch das markierte Feld, aber ich habe jetzt das Problem dass er das JTable nicht aktualisiert, wie bekomme ich es hin, dass er die JTable neu lädt
Ich freue mich auf alle Antworten
Ich poste hier auch mal zur Übersicht ein paar Quelltext Abschnitte von beiden Klassen
Klasse VokabelLoeschen :
public VokabelLoeschen()
{
klassehole = new HoleEintrageausDB();
setTable(klassehole.holeDBEintrage());
this.erzAnsicht();
}
public JTable getTable() {
return table;
}
public void setTable(JTable table) {
this.table = table;
}
public void erzAnsicht()
{
this.table = getTable();
setTable(table);
this.table = getTable();
JPanel panelgesamt = new JPanel (new BorderLayout());
JPanel panelflowbutton = new JPanel(new FlowLayout());
JButton buttonloeschen = new JButton("Löschen");
// klassehole.beendeDBVerbindung();
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
JScrollPane jsp = new JScrollPane(table);
jsp.setBorder(BorderFactory.createTitledBorder("Alle Wörter in der Datenbank"));
BearbeiterVokabelLoeschen bvl = new BearbeiterVokabelLoeschen(table,jsp);
buttonloeschen.addActionListener(bvl);
panelflowbutton.add(buttonloeschen);
Klasse BearbeiterVokabelLoeschen:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.event.TableModelEvent;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
public class BearbeiterVokabelLoeschen
implements ActionListener
{
private JTable table;
private HoleEintrageausDB klassehole;
private JScrollPane jsp;
public BearbeiterVokabelLoeschen(JTable table, JScrollPane jsp)
{
this.table = table;
this.jsp = jsp;
}
public void actionPerformed(ActionEvent ab)
{
String sql = "";
String loeschwort = table.getValueAt(table.getSelectedRow(),table.getSelectedColumn()).toString();
System.out.println(table.getSelectedColumn());
if(table.getSelectedColumn()== 0)
{
sql = "Delete * from woerter where wort1 like '" + loeschwort + "'";
}
else if (table.getSelectedColumn() == 1)
{
sql = "Delete * from woerter where wort2 like'" + loeschwort + "'";
}
VokabelLoeschen vl = new VokabelLoeschen();
table = new JTable();
klassehole = new HoleEintrageausDB();
klassehole.loescheVokabel(sql);
ps: Die Klasse HoleEintrageausDB ist die Zentrale Klasse wo alle Methoden abgelegt sind, die Methode um alle vokabeln rauszulesen heisst "klassehole.holeDBEintrage()"
diese Methode liefert mir ein JTable !
Danke im voraus !
Also ich programmiere zur Zeit ein Woerterbuch in Java mit einer Access DB wo die wörter drin gespeichert sind.
so jetzt habe ich die Klasse VokabelLoeschen dort holt er sich die Vokabeln per Aufruf von einer Klasse HoleEintrage (dort sind alle Methoden Zentral abgelegt)
In der Klasse VokabelLoeschen ist ein Button der an einem ActionListener namens BearbeiterVokabelLoeschen hängt.
Beim Start von VokabelLoeschen klappt alles Prima die Wörter werden in einer JTable richtig ausgegeben !
Beim markieren einer Zeile und ein Klick auf den Button klappt auch der löscht auch das markierte Feld, aber ich habe jetzt das Problem dass er das JTable nicht aktualisiert, wie bekomme ich es hin, dass er die JTable neu lädt
Ich freue mich auf alle Antworten
Ich poste hier auch mal zur Übersicht ein paar Quelltext Abschnitte von beiden Klassen
Klasse VokabelLoeschen :
public VokabelLoeschen()
{
klassehole = new HoleEintrageausDB();
setTable(klassehole.holeDBEintrage());
this.erzAnsicht();
}
public JTable getTable() {
return table;
}
public void setTable(JTable table) {
this.table = table;
}
public void erzAnsicht()
{
this.table = getTable();
setTable(table);
this.table = getTable();
JPanel panelgesamt = new JPanel (new BorderLayout());
JPanel panelflowbutton = new JPanel(new FlowLayout());
JButton buttonloeschen = new JButton("Löschen");
// klassehole.beendeDBVerbindung();
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
JScrollPane jsp = new JScrollPane(table);
jsp.setBorder(BorderFactory.createTitledBorder("Alle Wörter in der Datenbank"));
BearbeiterVokabelLoeschen bvl = new BearbeiterVokabelLoeschen(table,jsp);
buttonloeschen.addActionListener(bvl);
panelflowbutton.add(buttonloeschen);
Klasse BearbeiterVokabelLoeschen:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.event.TableModelEvent;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
public class BearbeiterVokabelLoeschen
implements ActionListener
{
private JTable table;
private HoleEintrageausDB klassehole;
private JScrollPane jsp;
public BearbeiterVokabelLoeschen(JTable table, JScrollPane jsp)
{
this.table = table;
this.jsp = jsp;
}
public void actionPerformed(ActionEvent ab)
{
String sql = "";
String loeschwort = table.getValueAt(table.getSelectedRow(),table.getSelectedColumn()).toString();
System.out.println(table.getSelectedColumn());
if(table.getSelectedColumn()== 0)
{
sql = "Delete * from woerter where wort1 like '" + loeschwort + "'";
}
else if (table.getSelectedColumn() == 1)
{
sql = "Delete * from woerter where wort2 like'" + loeschwort + "'";
}
VokabelLoeschen vl = new VokabelLoeschen();
table = new JTable();
klassehole = new HoleEintrageausDB();
klassehole.loescheVokabel(sql);
ps: Die Klasse HoleEintrageausDB ist die Zentrale Klasse wo alle Methoden abgelegt sind, die Methode um alle vokabeln rauszulesen heisst "klassehole.holeDBEintrage()"
diese Methode liefert mir ein JTable !
Danke im voraus !