Hi,
ich hab ne JTable, die ich mit ner abfrage füllen möchte.
die datenbankanbindung, und die abfrage müssten stimmen. mein problem ist jetzt, das ich nicht genau weiß wie ich das ergebnis der abfrage in meine jtable bekomme.
habs mal, mit hilfe, so versucht:
die jtable:
Klasse KreissaalPat:
Die DB-Abfrage:
und mein CollectionTableModel:
sry das es soviel code ist. hoffe es kann mir wer helfen. maybe gehts auch einfacher??
problem ist, das er getStation(), getName(), setStation() und setName() nicht kennt. die müsst ich irgendwie in der KLasse KreissaalPat implementieren. nur wie?!
Danke!!!
T1M
ich hab ne JTable, die ich mit ner abfrage füllen möchte.
die datenbankanbindung, und die abfrage müssten stimmen. mein problem ist jetzt, das ich nicht genau weiß wie ich das ergebnis der abfrage in meine jtable bekomme.
habs mal, mit hilfe, so versucht:
die jtable:
Code:
CollectionTableModel model = new CollectionTableModel()
{
protected Object getValueAt(Object src, int column)
{
KreissaalPat p = (KreissaalPat)src;
return (column==0)?p.getStation():p.getName();
}
protected void setValueAt(Object dst, int column, Object value)
{
KreissaalPat p = (KreissaalPat)dst;
if(column==0)
p.setStation((String)value);
else
p.setName((String)value);
}
public int getColumnCount()
{
return 2;
}
public String getColumnName(int column)
{
return (column==0)?"Station":"Name";
}
};
table = new JTable(model);
Klasse KreissaalPat:
Code:
public class KreissaalPat extends Object
{
public String Station;
public String Name;
public String P_;
public String ET;
public String SSW;
public String G;
public String P;
public String F;
public String Lage;
public String Diagnose;
public String Therapie;
public String v; //dazugehöriger String von Tafel.java: "v ^"
public String CTG;
public String Pädiater_informiert; //dazugehöriger String von Tafel.java: "Pädiater informiert"
public String AN_Aufklärung; //dazugehöriger String von Tafel.java: "AN-Aufklärung"
public KreissaalPat()
{
initPat();
}
public void initPat()
{
Station = "";
Name = "";
P_ = "";
ET = "";
SSW = "";
G = "";
P = "";
F = "";
Lage = "";
Diagnose = "";
Therapie = "";
v = "";
CTG = "";
Pädiater_informiert = "";
AN_Aufklärung = "";
Die DB-Abfrage:
Code:
public Collection getKreissalPatienten()
{
String sql = "select * "+
"from krstafel2";
Collection list = new ArrayList(128);
Statement query = null;
ResultSet daten = null;
int i = 0;
try
{
query = db.createStatement();
daten = query.executeQuery(sql);
//die Datenbankabfrage
while(daten.next())
{
KreissaalPat p = new KreissaalPat();
p.setStation(daten.getString("Station"));
p.setName(daten.getString("Name"));
list.add(p);
i+=i;
}
}
catch(Exception e)
{
i=0;
};
CollectionTableModel m = (CollectionTableModel) table.getModel();
m.setData(getKreissalPatienten());
System.out.println("Anzahl = " + i);
return list;
}
und mein CollectionTableModel:
Code:
import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;
import java.util.Collections;
import java.util.*;
abstract class CollectionTableModel extends AbstractTableModel
{
private ArrayList data = new ArrayList(512);
public void setData(Collection data)
{
this.data.clear();
this.data.addAll(data);
fireTableDataChanged();
}
public Collection getData()
{
Collection result = new ArrayList(data.size());
result.addAll(data);
return result;
}
protected abstract Object getValueAt(Object src, int column);
public Object getValueAt(int row, int column)
{
return getValueAt(data.get(row), column);
}
protected abstract void setValueAt(Object dst, int column, Object value);
public void setValueAt(Object value, int row, int column)
{
setValueAt(data.get(row), column, value);
fireTableRowsUpdated(row, row);
}
public int getRowCount()
{
return data.size();
}
}
problem ist, das er getStation(), getName(), setStation() und setName() nicht kennt. die müsst ich irgendwie in der KLasse KreissaalPat implementieren. nur wie?!
Danke!!!
T1M