Vaadin:将图像用作按钮

Tob*_*ess 3 css java vaadin vaadin7

我想将图像用作按钮。我让它工作了,但它不是很好,请看一下屏幕截图。如您所见,按钮本身比图像大得多,但我希望它与图像一样大:

在此处输入图片说明

实际的按钮比图像大。这里的目标是除了要单击的图像之外别无他物。我怎样才能做到这一点?这是屏幕截图上按钮的代码:

 Button testButton = new Button();
 String basepath = VaadinService.getCurrent().getBaseDirectory().getAbsolutePath();
 testButton.setIcon(new FileResource(new File(basepath + "/VAADIN/themes/mytheme/img/Button.png")));
 loginForm.addComponent(testButton);
Run Code Online (Sandbox Code Playgroud)

我知道

testButton.setStyleName(BaseTheme.BUTTON_LINK)
Run Code Online (Sandbox Code Playgroud)

使按钮不可见,但不幸的是,这不会调整按钮的大小,只会调整可见性..

Chr*_*s M 5

您可以简单地将点击监听器添加到图像而不是使用按钮。

Image image = new Image(null, new ClassResource("/images/button-img.jpg");
image.addClickListener(e -> System.out.println("click"));
image.addStyleName("my-img-button");
Run Code Online (Sandbox Code Playgroud)

并添加此 css,我使用 @Stylesheet 注释添加 CSS。

.my-img-button {
cursor: pointer;
}
Run Code Online (Sandbox Code Playgroud)