Java 如何定期更改页面标题并打开/关闭更改?

Java 如何定期更改页面标题并打开/关闭更改?,java,gwt,Java,Gwt,我想定期更改页面标题,即在当前页面标题前添加(*),几秒钟后将其删除。我想在代码中打开和关闭此标题更改 我从以下位置获取并设置页面标题: public static native void setPageTitle(String title) /*-{ $doc.title = title; }-*/; public static native String getPageTitle() /*-{ return $doc.title; }-*/; 但是我应该

我想定期更改页面标题,即在当前页面标题前添加(*),几秒钟后将其删除。我想在代码中打开和关闭此标题更改

我从以下位置获取并设置页面标题:

    public static native void setPageTitle(String title) /*-{
    $doc.title = title;
    }-*/;


public static native String getPageTitle() /*-{
    return $doc.title;
}-*/;
但是我应该如何编写一个函数,在添加和删除前缀时每300毫秒更改一次页面标题

我尝试的是:

private void changePageTitle(final String prefix) {

    new Timer() {
        @Override
        public void run() {
            String pageTitle =getPageTitle();

            if (pageTitle.startsWith(prefix)) {
                    pageTitle = pageTitle.substring(prefix.length());
                }
                else {
                    pageTitle = pageTitle + prefix;
                }
            setPageTitle(pageTitle);

        }
        }
    }.schedule(300);
}
这是行不通的。我不知道如何打开和关闭这个过程


其效果应该与Facebook类似。当新消息到达且您不在Facebook浏览器选项卡上时,该选项卡会显示一条正在闪烁的通知。

您必须通过
scheduleRepeating(300)
更改
计划(300)

在创建新的计时器之前,您应该只使用计时器的一个实例,或者保存最后一个计时器以取消它

顺便说一句:访问窗口标题不需要编写任何JSNI,只需使用
window.getTitle()
window.setTitle(String)

编辑:

这应该起作用:

// create just an instance of the timer
final MyUpdateTitleTimer mytimer = new MyUpdateTitleTimer();
// To Start the updater
mytimer.setPrefix("> ");
// To Stop set the prefix to null
mytimer.setPrefix(null);


class MyUpdateTitleTimer extends Timer {
  private String prefix;
  private String title;
  private boolean b;

  public void run() {
    String s = (b = !b) ? prefix + title : title;
    Window.setTitle(s);
  }

  public void setPrefix(String prefix) {
    if (title != null) {
      Window.setTitle(title);
    }
    this.prefix = prefix;
    if (prefix == null) {
      cancel();
    } else {
      title = Window.getTitle();
      scheduleRepeating(300);
    }
  }
}

你能给我发一些关于我如何访问定时器来停止和启动定时器的代码吗?实际上我不明白你想在标题中看到什么效果,你能解释得更好一点吗?效果应该像在Facebook上一样。当一条新消息到达并且您不在Facebook浏览器选项卡上时,该选项卡会显示一条正在闪烁的通知。我如何访问计时器,以便启动和停止计时器,并使用不同的前缀字符串启动计时器?当然,只需创建您自己的计时器实现,扩展它,更新我的响应。