1

ClickHandlerGWT を使用するプロジェクトで問題が発生しました。

ダイアログ ボックスのタイトルに、新しいボタンを挿入したいと考えています。

  1. 新しい挿入メソッドを作成しました: addToTitle(...).
  2. ClickHandlerボタン に追加しました

問題: ボタンによるクリック イベントが発生しません。なんで?

これが私のコードです:

DialogBox dialog = new DialogBox();

Button button = new Button("A new Button");

       button.addClickHandler(new ClickHandler()
        {
            @Override
            public void onClick(ClickEvent event)
            {
                Window.alert("yuhuhuhu");

            }
        });

dialog.addToTitle(button);

コード (コメント セクションから抽出) :

public class PlentyDialogWindow extends DialogBox { 
    private FlowPanel captionPanel = new FlowPanel(); 
    public Widget closeWidget = null; 
    private boolean closeOnEscKey = false; 
    private FlowPanel titleContentWrapper = new FlowPanel(); 
    public PlentyDialogWindow(boolean isModal) { 
        super( false, isModal); 
        this.addStyleName("DialogBox"); 
        this.getElement().setId("DialogBoxId"); 
        this.setAnimationEnabled(true); 
        this.closeWidget = generateCloseButton(); 
    }

    public void setCaption( String txt,Widget w) { 
        captionPanel.setWidth("100%"); 
        this.addCaption(txt); 
        this.titleContentWrapper.getElement().getStyle().setDisplay(Display.INLINE_BLOCK); 
        captionPanel.add(this.titleContentWrapper); 
        FlowPanel widgetWrapper = new FlowPanel(); 
        widgetWrapper.add(w); 
        widgetWrapper.addStyleName("PlentyPopupCloseIconWrapper"); 
        captionPanel.add(widgetWrapper); 
        captionPanel.addStyleName("Caption"); 
        Element td = getCellElement(0,1); 
        td.setInnerHTML(""); 
        td.appendChild(captionPanel.getElement()); 
    }

    /** * * @param w */ public void addToTitle(Widget w) { 
        this.titleContentWrapper.add(w); 
    } 
}
4

2 に答える 2