java - How to make JTable with JComboBox respond only on double click instead of single click -
so first time tried using celleditors jtable embed jcombobox , jspinner. works fine expected wherein can see values in jcombobox model jspinner's model values.
however, noticed displays jcombobox's values make single click on jtable's column has jcombobox.
it's not user friendly because think user prefer double click on jtable's column dropdown box values , select values instead of single click.
how can change jcombobox's behaviour display on double click?
i thought i'd apply mouselistener jcombobox don't know next.
here's i've written far.
public class scheduledaycelleditor extends defaultcelleditor{ private jcombobox jcmbdays; private jtable jtblschedule; private defaultcomboboxmodel model; public scheduledaycelleditor(){ super(new jcombobox()); model = new defaultcomboboxmodel(new string[]{"mon","tue","wed","thu","fri"}); jcmbdays = new jcombobox(model); jcmbdays.seteditable(false); jcmbdays.setselectedindex(-1); jcmbdays.addmouselistener(new mouselistener() { @override public void mouseclicked(mouseevent e) { if(e.getclickcount() == 2){ //? ? ? ? } } @override public void mousepressed(mouseevent e) { } @override public void mousereleased(mouseevent e) { } @override public void mouseentered(mouseevent e) { } @override public void mouseexited(mouseevent e) { } }); } @override public component gettablecelleditorcomponent(jtable table, object value, boolean isselected, int row, int column) { return jcmbdays; } @override public object getcelleditorvalue() { return jcmbdays.getselecteditem(); //to change body of generated methods, choose tools | templates. } here's screenshot additional description.
i'd appreciate help.
thank you.
simply override iscelleditable applying further criterion:
@override public boolean iscelleditable(eventobject aanevent) { boolean celleditable = super.iscelleditable(aanevent); if (celleditable && aanevent instanceof mouseevent) { celleditable = ((mouseevent) aanevent).getclickcount() == 2; } return celleditable; } 
Comments
Post a Comment