getColumnName, højden af columnheader ændrer sig
hejHar et lille problem med at ændre på mine columnheaders på min jtable under runtime. Jeg kan fint ændre teksten, men højden på headeren ændrer sig til et noget mindre højde end hvad den er til at starte med når programmet køres
Min JTable class :
import javax.swing.JTable;
import javax.swing.table.TableModel;
public class CustomerTable extends JTable {
CustomerTableModel tableModel = null;
CustomerTable table = null;
public CustomerTable(TableModel tm) {
super(tm);
tableModel = (CustomerTableModel) tm;
table = this;
getTableHeader().setReorderingAllowed(false);
setDragEnabled(false);
setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
setShowHorizontalLines(true);
setGridColor(Color.lightGray);
setShowVerticalLines(false);
configureEnclosingScrollPane();
setAutoResizeMode(AUTO_RESIZE_OFF);
setFont(new java.awt.Font("Dialog", java.awt.Font.PLAIN, 11));
setColumnSelectionAllowed(true);
setRowSelectionAllowed(true);
setCellSelectionEnabled(true);
}
public void resetSizes() {
getColumnModel().getColumn(0).setPreferredWidth(65);
getColumnModel().getColumn(1).setPreferredWidth(100);
getColumnModel().getColumn(2).setPreferredWidth(100);
getColumnModel().getColumn(3).setPreferredWidth(478);
}
public boolean isSelectedRow() { return (getSelectedRows().length == 1); }
public boolean isSelectedRows() { return (getSelectedRows().length >= 1); }
}
Min TableModel class:
import dk.IncrementalListTableModel;
public class CustomerTableModel extends IncrementalListTableModel {
public CustomerTableModel() {}
public Object getValueAt(int row, int column) {
Object obj = null;
try {
obj = (Object)(getObjectAt(row));
}catch(Exception e) {
e.printStackTrace();
}
if(obj instanceof CustomerPerson){
CustomerPerson cp = (CustomerPerson)obj;
if (cp == null) return "";
switch(column) {
case 0 : return cp.getMobileNummer();
case 1 : return cp.getFirstName();
case 2 : return cp.getLastName();
case 3 : return cp.getAddress();
}
}
if(obj instanceof CustomerGroup){
CustomerGroup cg = (CustomerGroup)obj;
if(cg == null) return "";
switch(column) {
case 0 : return "";
case 1 : return cg.getGroupName();
case 2 : return cg.getNotes();
case 3 : return "";
}
}
return "";
}
public int getColumnCount() { return 4; }
public String getColumnName(int column) {
boolean b = false;
try {
b = GUI.getGUI().getBody().getCustomerPanel().groupsChoosen;
} catch (Exception e) {
}
if(!b){
switch (column) {
case 0: return "CUSTOMER_PHONENR";
case 1: return "CUSTOMER_FIRSTNAME";
case 2: return "CUSTOMER_LASTNAME";
case 3: return "CUSTOMER_ADDRESS";
}
}else{
switch (column) {
case 0: return "";
case 1: return "GROUP_NAME";
case 2: return "GROUP_NOTES";
case 3: return "";
}
}
return "";
}
}
