Java GWT-stockwatch示例-事件处理说明

Java GWT-stockwatch示例-事件处理说明,java,gwt,Java,Gwt,首先,大家好。我是新来的,我刚刚开始学习gwt。关于stockwatch的例子,有一件事我不明白。首先,有一个addstock方法,它将新股票添加到列表中。在该方法中,我们还添加了remove按钮并将侦听器附加到该按钮。我的问题是,当你在添加新股票时不输入代码的那一部分,你只在单击“删除”按钮时才输入代码的那一部分时,怎么可能设置了indexOf attr。但这段代码是有效的,我找不到解释。我试图调试这个应用程序,但仍然难以理解。对不起,我的英语不好 private void addStock(

首先,大家好。我是新来的,我刚刚开始学习gwt。关于stockwatch的例子,有一件事我不明白。首先,有一个addstock方法,它将新股票添加到列表中。在该方法中,我们还添加了remove按钮并将侦听器附加到该按钮。我的问题是,当你在添加新股票时不输入代码的那一部分,你只在单击“删除”按钮时才输入代码的那一部分时,怎么可能设置了indexOf attr。但这段代码是有效的,我找不到解释。我试图调试这个应用程序,但仍然难以理解。对不起,我的英语不好

private void addStock()
{
    final String symbol = newSymbolTextBox.getText().toUpperCase().trim();

    //validaciju vrsimo upotrebom regularnih izraza
    if(symbol.matches("[0-9A-Z]"))
    {
         Window.alert("'" + symbol + "' is not a valid symbol.");
         newSymbolTextBox.selectAll();
         return;

    }

    newSymbolTextBox.setText("");

    if(stocks.contains(symbol))
    {
        return;
    }

    int row = stocksFlexTable.getRowCount();
    stocks.add(symbol);
    stocksFlexTable.setText(row, 0, symbol);
    Button removeStockButton = new Button("x");

    removeStockButton.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            int indexOf = stocks.indexOf(symbol);
            stocks.remove(indexOf);
            stocksFlexTable.removeRow(indexOf + 1);

        }
    });

    stocksFlexTable.setWidget(row, 3, removeStockButton);

    refreshWatchList();
}
我的问题是,当u 当你添加新股票时,不要输入那部分代码,你只输入那部分 单击“删除”按钮时的零件

作为事件侦听器阅读新建ClickHandler()为每个按钮提供一个处理程序,该处理程序捕获单击事件,并具有在按下特定删除按钮时删除该行的功能。每个按钮都有自己的clickHandler

indexOf不是变量的好名字。我宁愿使用示例代码中使用的removedIndex

    // Add a button to remove this stock from the table.
    Button removeStockButton = new Button("x");
    removeStockButton.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            int removedIndex = stocks.indexOf(symbol);
            stocks.remove(removedIndex);
            stocksFlexTable.removeRow(removedIndex + 1);
        }
    });
    stocksFlexTable.setWidget(row, 3, removeStockButton);