Hallo ich habe diese Methode, mit der ich die Spaltenbereite einer Tabelle festlege es funktioniert ganz gut. Problematisch ist nur, wenn ich mit der Maus die Spalten bereite ändern will, da bei der Thread- Aktualisierung übernehmt die Spalte wider die Werte, die ich festgelegt habe. Wie kann ich es verhindern ?
Code:
public synchronized void spaltenBreite()
{
try
{
// Hier wird die Spaltenbreite bestimmt!
int spalten = 0; // =0 falls Zähler aktiviert
for (Enumeration Enumm = tabelle.table.getColumnModel().getColumns();
Enumm.hasMoreElements(); ) {
Enumm.nextElement();
spalten++;
}
for (int i = 0; i < spalten; i++) {
TableColumn col = tabelle.table.getColumnModel().getColumn(i);
col.setPreferredWidth(110);
}
// ist nur für Material.... aber andere übernehmen es noch!
TableColumn col = null;
for (int s = 0; s < spalten; s++) {
switch (s) {
case 0:
col = tabelle.table.getColumnModel().getColumn(s);
col.setPreferredWidth(50);
break;
case 1:
col = tabelle.table.getColumnModel().getColumn(s);
col.setPreferredWidth(150);
break;
case 2:
col = tabelle.table.getColumnModel().getColumn(s);
col.setPreferredWidth(130);
break;
case 3:
col = tabelle.table.getColumnModel().getColumn(s);
col.setPreferredWidth(50);
break;
case 4:
col = tabelle.table.getColumnModel().getColumn(s);
col.setPreferredWidth(90);
break;
case 5:
col = tabelle.table.getColumnModel().getColumn(s);
col.setPreferredWidth(100);
break;
case 6:
col = tabelle.table.getColumnModel().getColumn(s);
col.setPreferredWidth(100);
break;
case 7:
col = tabelle.table.getColumnModel().getColumn(s);
col.setPreferredWidth(130);
break;
}
}
col = tabelle.table.getColumnModel().getColumn(spalten - 1);
}catch(Exception e){}
}