2014-02-02 2 views
1

Я использую GWT 2.6.0, и я следую за StockWatcher tutorial.Вход с ClickHandler не отображается в GWT

упрощенный, это мой код:

private Button sendButton = new Button("send"); 
private VerticalPanel mainPanel = new VerticalPanel(); 

public void onModuleLoad(){ 
    // this works 
    mainPanel.add(sendButton); 
    RootPanel.get("stockList").add(mainPanel); 

    // until I add a Click Handler: 
    sendButton.addClickHandler(event -> addStock()); 
} 

private void addStock(){ 
    //TODO: implement 
} 

кнопка не отображается. Однако, если я удаляю обработчик кликов, кнопка становится видимой.

Я совершенно не знаком с GWT, и мне интересно, что я здесь делаю неправильно?

Я использую ant devmode для запуска в режиме разработки, и я использую Firefox 26.0.

ответ

1

Похоже, что lamdas функцию java8 пока не поддерживается GWT:

sendButton.addClickHandler(event -> addStock()); 

Вот как добавить обработчик щелчка

Button b = new Button("Click Me"); 
    b.addClickHandler(new ClickHandler() { 
    public void onClick(ClickEvent event) { 
     // handle the click event 
    } 
    }); 
+0

нечетном один вкладыш лямбда является результатом рефакторинга 'новый ClickHandler() ...' в IntelliJ IDEA. Кажется, я не совсем понимаю Java 8 и лямбды, поскольку код с анонимным внутренним классом действительно работает. Спасибо – Aerus

+0

ваш код выглядит хорошо, как есть, я думаю, @Dmitry имеет точку, и gwt не может иметь дело с файлами класса java 8. – aepurniet

+0

@aepurniet Да, я понял, что я обновил ответ – Spiff

3

Я не уверен, что GWT 2.6 поддерживает java8 и лямбды. Чтобы убедиться в этом, попробуйте скомпилировать проект javascript.

Java 7 поддерживается и теперь используется по умолчанию. (Это может быть изменено с помощью -sourceLevel 6) http://www.gwtproject.org/release-notes.html#Release_Notes_2_6_0

+3

Поддерживается Java 7, как указано в указанной вами ссылке, но Java 8 еще не поддерживается *. Java 8 еще не является официальным, у нас есть только предварительные выпуски. Без Java 8 у вас пока нет лямбда. –

Смежные вопросы