1

我需要创建 2 个名为 yes 和 no 的通用按钮,如果没有,则返回 2,如果是,则返回 1。我看到 onclick 方法是 void 并且不返回 int,我该怎么办?

YesButton.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {

            ??? result ??

        }
    });
4

1 回答 1

1

这不是这样做的方法。不知道您的具体要求会有点困难,但我会冒险提出建议。首先定义一个controller/mediator/whachamacallit,其中包含视图可以执行的操作:

public interface MyListener
{
    void onYesClick();
    void onNoClick();
}

(也可以是一个具体的类,但是 yes 和 no click 看起来很通用,所以我们可以在其他地方重用它)

在您的视图类中,您将拥有

public class MyView
{
    private MyListener listener;

    private Button yesButton = new Button( "yessir!" );
    private Button noButton = new Button( "no way!" );

    public MyView( MyListener listener ) { this.listener = listener; }

    yesButton.addClickHandler( new ClickHandler() 
    {
        @Override
        public void onClick( ClickEvent event ) 
        {
            listener.onYesClick(); // similarly .onNoClick() for the "No" button
        }
    } );

    // etc
    ...
}

希望对您有所帮助。

于 2013-01-04T12:57:19.460 回答