> I was reading the post about the customrenderer using JCombobox to
> represent an enum. I have a similar problem which is ,I need to build
> a table that takes enums and display JCombobox so my customRenderer
> wont be for one particular enum but for enums in general, do you have
> any idea how that could be done ?
If you're refering to JDK 1.5 Enums, then you can use values() to get
an array of values held in that enum and populate the list.
Tutorial: http://java.sun.com/j2se/1.5.0/docs/guide/language/enums.html
-cheers,
Manish
malpropio - 15 Aug 2007 21:49 GMT
I was able to use the values() method to get the element of the enum
but now I have another problem, the ComBox does not drop down when I
click on it to select an element other than the default selected one
and I implement the getTableVellRendererComponent but the value I'm
getting are always null for some reason here is the renderer's code:
public class EnumRenderer<V extends Enum<V>> extends JComboBox
implements TableCellRenderer {
Class<V> valueType;
public EnumRenderer() {
// TODO Auto-generated constructor stub
}
public EnumRenderer(ComboBoxModel arg0) {
super(arg0);
// TODO Auto-generated constructor stub
}
public EnumRenderer(Object[] arg0) {
super(arg0);
// TODO Auto-generated constructor stub
}
public EnumRenderer(Vector<?> arg0) {
super(arg0);
// TODO Auto-generated constructor stub
}
public EnumRenderer( Class valueType ){
super(valueType.getEnumConstants());
this.setEnabled(true);
}
@Override
public Component getTableCellRendererComponent(JTable table, Object
value,
boolean isSelected, boolean hasFocus, int row, int column) {
// TODO Auto-generated method stub
System.out.println(value);
/*
if(arg1 != null ){
System.out.println(arg1);
Class<V> valueType = ((Enum)arg1).getDeclaringClass();
for(V v : valueType.getEnumConstants()){
addItem(v);
}
}
*/
return this;
}
}
malpropio - 16 Aug 2007 22:12 GMT
Found the problem I was using the wrong element. If you're trying to
use a combobox to change the value of a field you should use a custom
CellEditor extending a JComboBox instead of the CustomCellRender
because that will not let you edit/change the value of the cell via
the combobox.
Sebastian Millies - 20 Aug 2007 09:34 GMT
Am Thu, 16 Aug 2007 21:12:10 -0000 schrieb malpropio:
> Found the problem I was using the wrong element. If you're trying to
> use a combobox to change the value of a field you should use a custom
> CellEditor extending a JComboBox instead of the CustomCellRender
> because that will not let you edit/change the value of the cell via
> the combobox.
Hi, could you post your working example code? In any case, that would
help me a lot, not having much experience with Swing.
-- Thank you, Sebastian