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