【问题标题】:generic listeners for swt radio buttonsswt 单选按钮的通用侦听器
【发布时间】:2011-07-16 10:23:45
【问题描述】:

我正在开发一个 SWT 应用程序,在一种特定的形式中,有 14 对 Yes-No 单选按钮。这些对中的每一对都有一个与之关联的文本框。因此,如果用户选择是,则关联的文本框应该是可编辑的,否则不可编辑。我发现为单选按钮编写 28 个听众真的很令人生畏。由于单选按钮除了渲染文本框可编辑/不可编辑之外没有任何作用,我希望 SWT 中是否有一些通用类型的侦听器适用于数组中指定的一组单选按钮或类似的。是否有任何框架或者我必须编写单独的侦听器?

编辑
我仅在选择单选按钮时才尝试触发事件

rdoExperience.addListener(SWT.CHECK, new RadioButtonSelection( txtExperience));

但是 SWT.CHECK 也会导致在鼠标悬停在单选按钮上时触发事件。我也尝试过使用 SWT.SELECTED 但它也不起作用,我找不到其他合适的 SWT 常量。 W;我应该使用什么?

【问题讨论】:

    标签: java swt


    【解决方案1】:

    好点子。抱歉,我不知道这样的事情。

    但是,您自己创建一个:您可以编写一个(例如MyButtonListener),并将 button 文本框作为参数,而不是为每个按钮编写一个匿名侦听器。比您使用适当的文本框作为参数来实例化MyButtonListener。比在 Listeners 适当的回调方法中启用或禁用文本框。

    编辑:我的错。当然我的意思是你可以给它你的文本框,比如radioBtn.addListener(SWT.SELECTED, new MyButtonListener(textfield1));

    【讨论】:

    • "..instantiate MyButtonListener with ... " 表示为每个单选按钮添加无类型的侦听器,例如radioBtn.addListener(SWT.SELECTED, new MyButtonListener("radioBtnName")); ?
    • 哎呀,我的意思是radioBtn.addListener(SWT.SELECTED, new MyButtonListener(textfield1));
    • SWT.SELECTED 对我不起作用,我使用了 SWT.CHECK。它的工作,但我得到某事。也出乎意料。单选按钮也会在鼠标悬停时触发事件。什么是合适的 SWT 常量。我找不到合适的。
    【解决方案2】:

    您可以创建一个 SelectionListener 并将其添加到每个单选按钮。然后,您可以确定从选择事件中按下了哪个按钮并将其映射到文本框。对于映射,您可以使用数组或哈希表。

    【讨论】:

      猜你喜欢
      • 2014-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-31
      • 2020-12-23
      • 1970-01-01
      • 1970-01-01
      • 2012-03-19
      相关资源
      最近更新 更多