JAVA动态设置标题

JAVA动态设置标题,java,timer,Java,Timer,我想使用在主窗体USERGUI中执行的计时器动态更改标题 计时器的第一次执行如下所示: public void startTimer(GUI gui, String staticTitle) { //this.gui = gui; stayingTitle = staticTitle; timer = new Timer(); myTimerTask = new MyTimerTask(); int millisek = 1000; timer

我想使用在主窗体USERGUI中执行的计时器动态更改标题

计时器的第一次执行如下所示:

public void startTimer(GUI gui, String staticTitle) {
    //this.gui = gui; 
    stayingTitle = staticTitle;
    timer = new Timer();
    myTimerTask = new MyTimerTask();
    int millisek = 1000; 
    timer.schedule(myTimerTask, millisek, millisek); 
}
在计时器的运行功能中,其定义为:

long hours = minuntilrecon / 3600;
long minutes = (minuntilrecon % 3600) / 60;
long seconds = minuntilrecon % 60;

String timeString = String.format("%02d:%02d:%02d", hours, minutes, seconds);
String setthisTitle = stayingTitle+" | Time left: "+ timeString;
UserGUI.newTitle(setthisTitle);
minuntilrecon = Math.abs(minuntilrecon-1000);
计时器应每秒在USERGUI中执行以下功能:

public void newTitle(String gottitle){
    this.setTitle(gottitle);
}
但是我在控制台中得到的只是带有
UserGUI.newTitle(setthisTitle)的行的空指针异常

线程“Timer-0”java.lang.NullPointerException中出现异常
在gui.timertle$MyTimerTask.run(timertle.java:74)
位于java.util.TimerThread.mainLoop(未知源)
在java.util.TimerThread.run处(未知源)


有什么想法吗

您的对象
UserGUI
在哪里?为什么需要调用
newTitle
,并在内部调用
setTitle
?为什么不直接调用
setTitle
?UserGUI定义在计时器的顶部“public UserGUI UserGUI;”。事实上,一开始我调用了setTitle,后来我使用函数进行了尝试。您是否初始化了
UserGUI
代码中的任何位置,如
UserGUI=new UserGUI()
,并确保在调用setTitle之前初始化了它?而且变量名的第一个字符不应该大写,这是一种不好的做法。至少把它改成
userGUI
我想我初始化userGUI时是在计时器的顶部用“private userGUI userGUI;”(后来我也试过public)来表示的?谢谢,稍后我会将变量名改为小写。它没有初始化,
UserGUI
只是声明,没有初始化,在Java中,您必须调用
new
操作符。