瓦丁:如何改变图标?

Cat*_*ysm 10 vaadin vaadin7

如何在Vaadin中更改我的页面的图标?我想更改我的页面的图标,但我不知道在哪里可以更改它?有人有经验吗?

小智 10

首先,创建一个主题目录:/ WebContent/VAADIN/themes/mynewtheme

然后,将您的自定义favicon.ico放在此目录中.您还需要在应用程序中设置theme属性:

public class MyNewApplication extends Application {

    @Override
    public void init() {
        ...
        ...
        setTheme("mynewtheme");
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 非常奇怪...我的UI课程上有@Theme("mytheme")注释,但是我必须调用setTheme("mytheme")来改变favicon ... (2认同)

Bas*_*que 7

这是Greg Ballot发布的类似答案的更详细版本.我的答案与Vaadin 7有关,目前为7.5.3.

自定义主题

Vaadin 7.5中,您可以将您的favicon图形图像文件放入您自己的自定义主题中.如果将Vaadin插件用于各种IDE(NetBeans,Eclipse)或Maven原型,则mytheme应该已经为您创建了一个名为的自定义主题.将图像文件拖放到该mytheme文件夹中.

Vaadin 7应用程序的主要部分是您的子类UI,必须指定它使用您的自定义主题.同样,如果使用IDE插件和/或Maven原型,这应该已经为您配置.最简单的方法是在UI子类上使用Java Annotation.

@Theme ( "mytheme" )  // Tell Vaadin to apply your custom theme, usually a subclass of the Valo or Reindeer theme.
@Title ( "PowerWrangler" )  // Statically specify the title to appear in web browser window/tab.
@SuppressWarnings ( "serial" )  // If not serializing such as "sticky sessions" and such, disable compiler warnings about serialization.
@Push ( PushMode.AUTOMATIC )  // If using Push technology.
public class MyVaadinUI extends UI
{
…
Run Code Online (Sandbox Code Playgroud)

Favicon用法/行为不标准

请记住,favicon行为不是标准化的.Favicons随意发展,主要是出于乐趣.确切的行为取决于特定的浏览器和特定的服务器.除了特定的文件夹位置,这对Vaadin来说都不是特别的.

图像文件格式

最初ICO文件格式是专门使用的.从那时起,大多数浏览器已经发展为接受多种格式中的任何一种,包括JPEG,TIFFPNG.

图像尺寸/分辨率

最初的favicons旨在是非常小的位图图标.有些浏览器在您可能想要提供更高分辨率图像的情况下对favicon进行了各种使用.但请记住,较小的文件加载速度更快,而不会让用户等待.

Favicon文件名

某些浏览器或服务器可能会处理其他文件名或名称扩展名,但我发现最简单地命名我的文件favicon.ico- 即使使用不同的格式!我通常使用PNG文件,但用.ico扩展名命名.虽然我不能保证这种做法适用于每个服务器和浏览器,但我没有遇到任何问题.

现有的Favicon文件

最新版本的Vaadin在已配置项目的favicon.ico文件中包含了一个Vaadin相关图标.所以你必须用自己的文件替换该文件.在Vaadin 7.5.3中,该文件包含四种大小,最大的大小如下:

默认情况下,在已配置的项目中提供Vaadin徽标图标

较旧的版本没有添加文件,因此您可以使用自己的文件.

IDE屏幕截图

这是一对屏幕截图.一个是NetBeans 8中的项目(逻辑)视图,另一个是文件(物理)视图.

使用NetBeans 8项目查看favicon的位置

使用NetBeans 8的favicon位置的文件系统视图