第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何防止使用GWT亂添加控件?

如何防止使用GWT亂添加控件?

我在應(yīng)用程序中使用 GWT 創(chuàng)建兩個(gè)具有相同按鈕的面板。例如,兩個(gè)面板 PanelFirst 和 PanelSecond 有兩個(gè)類(lèi),還有一個(gè)按鈕 MyButton 的類(lèi),單擊后顯示警報(bào)。我向兩個(gè)面板添加一個(gè)按鈕,并期望看到一個(gè)包含兩個(gè)面板的頁(yè)面,每個(gè)面板上都有相同的按鈕。但我得到兩個(gè)面板,其中 PanelFirst 為空,PanelSecond 有兩個(gè)重疊的按鈕(按鈕看起來(lái)像一個(gè)按鈕,當(dāng)我單擊它時(shí),我收到兩個(gè)警報(bào),在 html 的 DevTool 中,我看到兩個(gè)按鈕放置在同一位置)。為什么會(huì)發(fā)生這種情況?根本原因是異步j(luò)s嗎?我該如何解決這個(gè)問(wèn)題?為了更好地理解我,我附上了一個(gè)代碼示例(這不是真正的代碼。這只是常見(jiàn)的示例)。class PanelFirst {   private static Button myFirstButton = new Button();   private static FlowPanel firstPanel;   public PanelFirst (){};   public FlowPanel createPanelFirst(){     firstPanel = new FlowPanel();     myFirstButton = MyButton().createMyButton();     firstPanel.add(myFirstButton);     return firstPanel;   }   }class PanelSecond  {   private static Button mySecondButton = new Button();   private static FlowPanel secondPanel;   public PanelSecond(){};   public FlowPanel createPanelSecond(){     secondPanel= new FlowPanel();     mySecondButton = MyButton().createMyButton();     secondPanel.add(mySecondButton);     return secondPanel;   }   }class MyButton {   private static Button mySecondButton = new Button();   public MyButton(){};   public Button createMyButton(){     mySecondButton.addClickHandler(new ClickHandler() {            @Override            public void onClick(ClickEvent event) {                createAlert("I'm button");            }        });     return mySecondButton;   }   }
查看完整描述

1 回答

?
智慧大石

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個(gè)贊

好吧,您基本上是在 2 個(gè)面板中添加相同的按鈕 2 次,并向ClickHandler其中添加 2 。您需要像這樣更改您的代碼:


首先將您的方法更改createMyButton為靜態(tài)方法并在那里創(chuàng)建一個(gè)新對(duì)象


class MyButton {


    public MyButton(){};


    public static Button createMyButton(){

        MyButton button = new MyButton();

        button.addClickHandler(new ClickHandler() {

            @Override

            public void onClick(ClickEvent event) {

                createAlert("I'm button");

            }

        });

        return button;

    }   

}

現(xiàn)在您可以在面板中使用它:


class PanelFirst {


    private static FlowPanel firstPanel;


    public PanelFirst (){};


    public FlowPanel createPanelFirst(){

        firstPanel = new FlowPanel();

        firstPanel.add(MyButton.createMyButton());

        return firstPanel;

    }   

}


class PanelSecond  {

    private static FlowPanel secondPanel;


    public PanelSecond(){};


    public FlowPanel createPanelSecond(){

        secondPanel= new FlowPanel();

        secondPanel.add(MyButton.createMyButton());

        return secondPanel;

    }   

}


查看完整回答
反對(duì) 回復(fù) 2024-01-25
  • 1 回答
  • 0 關(guān)注
  • 188 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)