2012-03-06 6 views
0

私は、株の追加と削除とその価格と変化を目の当たりにするチュートリアルをしようとしています。このチュートリアルでは、GUIビルダーGWT Designerを使用して、GWTチュートリアルに基づいてStock Watcherアプリケーションを作成および設計する方法を示します。windowbuilderチュートリアルが機能しません

http://code.google.com/webtoolkit/tools/gwtdesigner/tutorials/stockwatcher.html#design_ui

これまでのところ、私はSW.javaている:私は、Webアプリケーションを実行すると、私は株式を

package edu.gatech.client; 
import java.util.ArrayList; 

import com.google.gwt.core.client.EntryPoint; 
import com.google.gwt.event.dom.client.ClickEvent; 
import com.google.gwt.event.dom.client.ClickHandler; 
import com.google.gwt.event.dom.client.KeyCodes; 
import com.google.gwt.user.client.Window; 
import com.google.gwt.user.client.ui.Button; 
import com.google.gwt.user.client.ui.RootPanel; 
import com.google.gwt.user.client.ui.TextBox; 
import com.google.gwt.user.client.ui.VerticalPanel; 
import com.google.gwt.user.client.ui.FlexTable; 
import com.google.gwt.user.client.ui.HorizontalPanel; 
import com.google.gwt.user.client.ui.Label; 
import com.google.gwt.event.dom.client.KeyPressHandler; 
import com.google.gwt.event.dom.client.KeyPressEvent; 

/** 
* Entry point classes define <code>onModuleLoad()</code>. 
*/ 
public class SW implements EntryPoint { 
    private RootPanel rootPanel; 
    private FlexTable stocksFlexTable; 
    private HorizontalPanel addPanel; 
    private VerticalPanel mainWindow; 
    private TextBox newSymbolTextBox; 
    private Button addButton; 
    private Label lastUpdatedLabel; 
    private ArrayList <String> stocks = new ArrayList<String>(); //Add this line 



     public void onModuleLoad() { 
     rootPanel = RootPanel.get(); 

     mainWindow = new VerticalPanel(); 
     rootPanel.add(mainWindow, 10, 10); 
     mainWindow.setSize("267px", "175px"); 

     FlexTable stocksFlexTable = new FlexTable(); 

     //Add these lines 
     stocksFlexTable.setText(0, 0, "Symbol"); 
     stocksFlexTable.setText(0, 1, "Price"); 
     stocksFlexTable.setText(0, 2, "Change"); 
     stocksFlexTable.setText(0, 3, "Remove"); 
     mainWindow.add(stocksFlexTable); 

     addPanel = new HorizontalPanel(); 
     rootPanel.add(addPanel, 10, 200); 
     addPanel.setSize("267px", "68px"); 

     newSymbolTextBox = new TextBox(); 
     newSymbolTextBox.addKeyPressHandler(new KeyPressHandler() { 
      public void onKeyPress(KeyPressEvent event) { 
       if (event.getCharCode() == KeyCodes.KEY_ENTER){ 
        addStock(); 
       } 
      } 
     }); 


     addPanel.add(newSymbolTextBox); 
     newSymbolTextBox.setWidth("211px"); 

     addButton = new Button("Add"); 
     addButton.addClickHandler(new ClickHandler() { 
      public void onClick(ClickEvent event) { 
       addStock(); 
      } 
     }); 


     addPanel.add(addButton); 

     lastUpdatedLabel = new Label("New Label"); 
     rootPanel.add(lastUpdatedLabel, 48, 274); 



    } 

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

     // Stock code must be between 1 and 10 chars that are numbers, letters, or dots. 
     if (!symbol.matches("^[0-9A-Z\\.]{1,10}$")) { 
      Window.alert("'" + symbol + "' is not a valid symbol."); 
      newSymbolTextBox.selectAll(); 
      return; 
     } 

     newSymbolTextBox.setText(""); 

    // don't add the stock if it's already in the watch list 
     if (stocks.contains(symbol)) 
      return; 

     // add the stock to the list 
     int row = stocksFlexTable.getRowCount(); 
     stocks.add(symbol); 
     stocksFlexTable.setText(row, 0, symbol); 

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

追加することはできません。しかし、プログラムは、悪い株の名前と受け入れ可能なものを区別します。代わりに私は "キャッチされていない例外がエスケープ"エラーを取得し、プログラムは本当に何もしません。これをトラブルシューティングするにはどうすればよいですか?

答えて

0

デバッガを使用してコードを1回実行します。 addStockの最初の行にブレークポイントを設定し、どの行がクラッシュするかを調べます。いったんどのラインを見つけたら、そのラインを計測して、どのラインが問題を引き起こしているかを知ることができます。ラインを見て問題を推測できないと仮定します。

関連する問題