You are likely importing com.google.gwt.user.client.ui.Button not com.vaadin.ui.Button. You can't add Vaadin ClickListener to GWT Button or vice versa.
Listening to button click events works in sub-windows just as everywhere else. So your code should otherwise be OK as long as 'this' really is implementing the correct interface.