Hallo zusammen
Ich habe folgenden TableCellRenderer definiert:
An dieser Stelle füge ich ihn einer bestimmten Spalte hinzu:
Leider wird die Funktion
niemals aufgerufen. Hat vielleicht jemand eine Idee, was ich falsch mache?
Mfg Ishildur
Ich habe folgenden TableCellRenderer definiert:
Code:
// #################################### define the package ####################################
package UMLDesigner.UMLRenderers;
// ############################################################################################
// ################################# import all needed classes ################################
// ------------------------------------- internal imports -------------------------------------
import UMLDesigner.UMLObjects.UMLStereotype;
// --------------------------------------------------------------------------------------------
// ------------------------------------- external imports -------------------------------------
import java.awt.Component;
import javax.swing.DefaultListCellRenderer;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
// --------------------------------------------------------------------------------------------
// ############################################################################################
// ########################## class UMLStereotypeTableCellRenderer ##########################
public class UMLStereotypeTableCellRenderer extends DefaultTableCellRenderer{
// ----------------------------------- default constructor -----------------------------------
public UMLStereotypeTableCellRenderer(){
// setup this instance
this.setHorizontalTextPosition(DefaultListCellRenderer.RIGHT);
this.setHorizontalAlignment(DefaultListCellRenderer.LEFT);
}
// -------------------------------------------------------------------------------------------
// --------------------- interface method "getListCellRendererComponent" ---------------------
public Component getTableCellRendererComponent(JTable tbl,Object val,boolean bSel,
boolean bFoc,int row,int col){
// call the original method
super.getTableCellRendererComponent(tbl,val,bSel,bFoc,row,col);
// check if the selected value isn't null
if(val != null){
// assign the text and the icon
this.setText(((UMLStereotype)val).getName());
this.setIcon(((UMLStereotype)val).getIcon());
}
// otherwise just assign the text to undefined
else this.setText("{Undefiniert}");
// finally return this component
return this ;
}
// -------------------------------------------------------------------------------------------
}
// ############################################################################################
An dieser Stelle füge ich ihn einer bestimmten Spalte hinzu:
Code:
this.jtbTbl.getColumnModel().getColumn(1).setCellRenderer(new UMLStereotypeTableCellRenderer());
Leider wird die Funktion
Code:
public Component getTableCellRendererComponent(JTable tbl,Object val,boolean bSel,boolean bFoc,int row,int col)
Mfg Ishildur