我正在开发一个SWT应用程序,并且在一种特定形式中有14对Yes-No单选按钮。这些对中的每一对都有一个与之关联的文本框。因此,如果用户选择“是”,则关联的文本框应该是可编辑的,否则是不可编辑的。我发现为收音机按钮写28个听众真是令人生畏。由于单选按钮没有什么可做的,只是渲染文本框可编辑/不可编辑,我希望SWT中有一些通用类型的侦听器适用于数组中指定的一组单选按钮或类似的。是否有任何框架或我是否必须编写个人听众?
修改
我只是在选中单选按钮时尝试触发事件
rdoExperience.addListener(SWT.CHECK, new RadioButtonSelection(
txtExperience));
但SWT.CHECK导致鼠标悬停在单选按钮上时触发事件。我也尝试过使用SWT.SELECTED,但它也没有工作,我找不到其他合适的SWT常量。我应该使用帽子吗?
答案 0 :(得分:0)
好点。对不起,我不知道这件事。
但是,你自己创建一个:不是为每个按钮编写一个匿名监听器,你可以写一个 - 比如说MyButtonListener
- 然后给它按钮文本框作为参数。比使用适当的文本框作为参数实例化MyButtonListener
。比在Listeners适当的回调方法中,启用或禁用文本框。
编辑:我的不好。当然,我的意思是你可以给它你的文本框,如radioBtn.addListener(SWT.SELECTED, new MyButtonListener(textfield1));
答案 1 :(得分:0)
您可以创建一个SelectionListener并将其添加到每个单选按钮。然后,您可以确定从选择事件中按下了哪个按钮并将其映射到文本框。对于映射,您可以使用数组或哈希表。