开发者

Can we tell if the mouse actually clicked on a checkbox in Java?

Here is the scenario. I have an swing applet with tons of checkboxes. some of them are disabled/unchecked when checking another. Each ItemStateChange() event executes a method to parse the entire form for changes. Is there a way to tell if an ItemStateChange() event was triggered due to a mouse click or from a setSelected() call?

The ItemStateChange() for each checkbox has the standard parameter java.awt.event.ItemEvent evt

I'd like to only call the processOrder() method once when a box is clicked. Right now it fires for each change thats made, regardless of whether the change happened from setSelected(). Sometimes th开发者_运维问答ere are 10+ parseForm(); calls from a single click.


You can't tell whether the source of the event is a mouse click or a setSelected call from the ItemEvent.

It sounds like you have a loop in your check box logic. You might want to add a controller that handles the events and sets each checkbox yet ignores events that occur due to calling setSelected on other check boxes.


Is there a way to tell if an ItemStateChange() event was triggered due to a mouse click or from a setSelected() call?

If your application manually invokes the setSelected() method then you can use code like:

checkBox.removeItemListener(...);
checkBox.setSelected(...);
checkBox.addItemListener(...);


If you are able to change to use a MouseListener instead of an ItemListener and respond to the mouseClicked() event you will only receive the events for the checkbox selected by the user.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜