Ich habe ein kleines Problem.
Und zwar arbeite ich mit Eclipse 3.1 und habe eine Scrollpane mit jTable erstellt.
Dieser jTable habe ich ein Tablemodel verpasst. Dieses Model läuft auch beim ersten start und lädt aus der Datenbank die Daten in das jTable rein.
Nun habe ich einen Button, der mir zwei Werte erhöht und anschließend das Model bzw die jTable neu aufbauen soll mit Werten aus der DB, da sich ja jetzt die Selektionskriterien geändert haben.
Allerdings passiert nix beim Klick auf den Button, die Krieterien werden aber hochgezählt, wie es sein sollte.
Hier mal der komplette Sourcecode, der dafür wichtig ist.
Hier der Button und seine Funktionalität:
Und hier die Scrollpane, die jTable und das Model:
Würde mich freuen, wenn hierzu jemand eine Lösung finden würde, dass die jTable neu aufgebaut wird beim Klick auf den Button
das tabCenter.revalidate(); war die letzte Lösung die ich ausprobiert habe, habe auch schon versucht, das Model neu zu übergeben, hat auch net gefunzt
Viel Spaß beim tüfteln
Und zwar arbeite ich mit Eclipse 3.1 und habe eine Scrollpane mit jTable erstellt.
Dieser jTable habe ich ein Tablemodel verpasst. Dieses Model läuft auch beim ersten start und lädt aus der Datenbank die Daten in das jTable rein.
Nun habe ich einen Button, der mir zwei Werte erhöht und anschließend das Model bzw die jTable neu aufbauen soll mit Werten aus der DB, da sich ja jetzt die Selektionskriterien geändert haben.
Allerdings passiert nix beim Klick auf den Button, die Krieterien werden aber hochgezählt, wie es sein sollte.
Hier mal der komplette Sourcecode, der dafür wichtig ist.
Hier der Button und seine Funktionalität:
Code:
private JButton getBtnNextmonth() {
if (btnNextmonth == null) {
btnNextmonth = new JButton();
btnNextmonth.setBounds(new java.awt.Rectangle(669,48,108,23));
btnNextmonth.setText(">>");
btnNextmonth.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
if(month==11)
{
month = 0;
year++;
}
else month++;
labMonat.setText(monate[month]+" "+year);
tabCenter.revalidate();
}
});
}
return btnNextmonth;
}
Und hier die Scrollpane, die jTable und das Model:
Code:
private JScrollPane getScrCenter() {
if (scrCenter == null) {
scrCenter = new JScrollPane();
scrCenter.setBounds(new java.awt.Rectangle(76,30,1139,766));
scrCenter.setViewportView(getTabCenter());
}
return scrCenter;
}
/**
* This method initializes tabCenter
*
* @return javax.swing.JTable
*/
private JTable getTabCenter() {
if (tabCenter == null) {
tabCenter = new JTable();
tabCenter.setCellSelectionEnabled(true);
tabCenter.setModel(getTabmodModel());
}
return tabCenter;
}
/**
* This method initializes tabmodModel
*
* @return javax.swing.table.DefaultTableModel
*/
private DefaultTableModel getTabmodModel() {
int zaehler = 0;
int zaehler2 = 0;
int anz = 0;
if (tabmodModel == null) {
tabmodModel = new DefaultTableModel();
tabmodModel.setColumnIdentifiers(ueber);
try {
createquery("select ein_aus,text,betrag,monat,jahr from konto where monat="+month+" and jahr="+year);
rs.last();
anz = rs.getRow();
rs.first();
} catch (SQLException e1) { System.out.print(e1); }
String[][] ein = new String[anz][2];
String[][] aus = new String[anz][2];
String[][] data = new String[anz][4];
try {
if(rs.getRow()!=0)
{
do
{
if(rs.getDouble("ein_aus")==0)
{
ein[zaehler][0] = rs.getString("text");
ein[zaehler][1] = Double.toString(rs.getDouble("betrag"));
zaehler++;
}
else
{
aus[zaehler2][0] = rs.getString("text");
aus[zaehler2][1] = Double.toString(rs.getDouble("betrag"));
zaehler2++;
}
}
while(rs.next());
}
} catch (SQLException e1) { }
if(ein.length >= aus.length)
{
for(int i=0;i<ein.length;i++)
{
data[i][0] = ein[i][0];
data[i][1] = ein[i][1];
if(i <= aus.length)
{
data[i][2] = aus[i][0];
data[i][3] = aus[i][1];
}
else
{
data[i][2] = "";
data[i][3] = "";
}
tabmodModel.addRow(data[i]);
}
}
else
{
for(int i=0;i<aus.length;i++)
{
if(i <= ein.length)
{
data[i][0] = ein[i][0];
data[i][1] = ein[i][1];
}
else
{
data[i][0] = "";
data[i][1] = "";
}
data[i][2] = aus[i][0];
data[i][3] = aus[i][1];
tabmodModel.addRow(data[i]);
}
}
tabmodModel.addTableModelListener(new javax.swing.event.TableModelListener() {
public void tableChanged(javax.swing.event.TableModelEvent e) {
//DB-Update
}
});
}
return tabmodModel;
}
Würde mich freuen, wenn hierzu jemand eine Lösung finden würde, dass die jTable neu aufgebaut wird beim Klick auf den Button
das tabCenter.revalidate(); war die letzte Lösung die ich ausprobiert habe, habe auch schon versucht, das Model neu zu übergeben, hat auch net gefunzt
Viel Spaß beim tüfteln