public class DB {
private Vector database;
public DB() { database = new Vector();}
public void addDataSet(DataSet element)
{database.addElement(element); }
public DataSet getDataSet(int index)
{ try {return (DataSet) database.get(index);}
catch(Exception ex){System.out.println("Element dont exist."); return null;}
}
public int Length(){return database.size();}
public void delDataSet(int index)
{
try{
database.remove(index);}
catch ( Exception ex) { System.out.println("Data set dont exist.");}
}
public void Replace(DataSet data, int index)
{try{ database.setElementAt(data,index);
}
catch(Exception Ex) { System.out.println("Data set dont exist.");}
}
public String[] Categories()
{
Vector echo = new Vector();
Enumeration enum = database.elements();
while (enum.hasMoreElements())
{
DataSet Data = (DataSet) enum.nextElement();
if (echo.contains(Data.Category)!=true) echo.addElement(Data.Category);
}
enum = echo.elements();
String[] cat = new String[echo.size()+1];
for (int i=0;enum.hasMoreElements();i++) cat[i] =(String) enum.nextElement();
cat[echo.size()] = "default";
return cat;
}
public Object[][] MakeArray()
{
Object[][] echo = new Object[this.Length()][8];
Enumeration enum = this.database.elements();
SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy");
for (int loop=0;enum.hasMoreElements();loop++)
{
DataSet data = (DataSet) enum.nextElement();
echo[loop][0] = data.Name;
echo[loop][1] = data.Description;
echo[loop][2] = data.Category;
echo[loop][3] = data.State;
echo[loop][4] = format.format(data.Creation);
echo[loop][5] = format.format(data.Limit);
echo[loop][6] = format.format(data.Resolution);
echo[loop][7] = format.format(data.LastModified);
}
return echo;
}
}
Nun der Code des JTable :
public class myScrollTable extends JScrollPane{
private InputMask Mask;
private DB Database;
private String[] ColumnNames = {"Name : ","Description :","Category :","State :","Creation : ","Limit : ","Resolution : "};
private JTable jTable;
private DefaultTableModel myModel;
public myScrollTable(DB Database,InputMask Mask) {
super();
this.Database = Database;
this.Mask = Mask;
initialize();
}
private void initialize() {
this.setPreferredSize(new java.awt.Dimension(800,200));
this.setViewportView(getJTable());
this.setSize(800, 200);
}
private JTable getJTable() {
if (jTable == null) {
myModel = new DefaultTableModel(Database.MakeArray(),ColumnNames);
jTable = new JTable( myModel);
jTable.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent e) {
Point p = e.getPoint();
int row = jTable.rowAtPoint(p);
Mask.Ubdate(row);
}
});
}
return jTable;
}
public void Ubdate(int ID)
{
myModel = new DefaultTableModel(Database.MakeArray(),ColumnNames);
jTable.setModel(myModel);
}