2015-10-19 72 views
0

我試圖讓這一天的使用JOptionPane的出現在一個窗口,並得到窗口更新時間,當你按下OK按鈕時更新時間。爪哇 - 顯示時間與在JOptionPane的

我得到出現的時間,但不能讓它更新,當我點擊「確定」按鈕..

這裏是我的代碼(IM初學者所以這是一個有點「亂」,我知道!)

package p2; 
import javax.swing.JOptionPane; 
import java.util.Date; 
import java.util.Calendar; 

public class Exercise2b { 
    private int hour; 
    private int minute; 
    private int second; 

    public void demo() { 

     String message1, message2; 
     Calendar cal = Calendar.getInstance(); 
    int hour = cal.get(Calendar.HOUR_OF_DAY); 
    int minute = cal.get(Calendar.MINUTE); 
    int second = cal.get(Calendar.SECOND); 
    message1 = "Klockan är "+hour+":"+minute+":"+second; 
    message2 = toString(); 
    JOptionPane.showMessageDialog(null, message1); 
    JOptionPane.showMessageDialog(null, message2); 
    } 

    public Exercise2b(int hour, int minute, int second) { 
     this.hour = hour; 
     this.minute = minute; 
     this.second = second; 
    } 

     public Exercise2b() { 
    } 

     public int getHour() { 
      return this.hour; 
     } 

     public int getMinute() { 
      return this.minute; 
     } 

     public int getSecond() { 
      return this.second; 
     } 
     public String toString() { 
       return this.hour +":"+ this.minute+ ":"+ this.second + " "; 
     } 



     public static void main(String[] args) { 
     Exercise2b prog = new Exercise2b(); 
     prog.demo(); 

    } 



} 
+0

哪裏是當你點擊確認你的代碼更新嗎? – LBes

+1

爲什麼不使用'DateFormat'? –

回答

0

你正在創建的局部變量,而不是使用全局變量,你也需要重新分配從日曆中的值,否則日期將不會改變,因爲日曆只是一個時間的快照,它是請勿更改,因此您需要再次致電getInstance()

嘗試這樣做

 public void demo() { 
     String message1, message2; 
     message1 = "Klockan är " + getHour() + ":" + getMinute() + ":" +   getSecond();  
     JOptionPane.showMessageDialog(null, message1); 
     message2 = toString();  
     JOptionPane.showMessageDialog(null, message2); 
    } 

    public int getHour() { 
     return Calendar.getInstance().get(Calendar.HOUR_OF_DAY); 
    } 

    public int getMinute() { 
     return Calendar.getInstance().get(Calendar.MINUTE); 
    } 

    public int getSecond() { 
     return Calendar.getInstance().get(Calendar.SECOND); 
    } 

    public String toString() { 
     return getHour() + ":" + getMinute() + ":" + getSecond() + " "; 
    } 
+0

** ou're創建本地變量,而不是使用全局變量,你也需要重新分配從日曆中的值,否則日期將不會改變。**我知道有些事情我完全忘了,它是如此明顯!非常感謝Johnny! :) – FR1TTE

+0

@ FR1TTE沒問題,注意日曆不會改變,就像我現在描述。 –

0

在(),你應該獲得當前小時,分鐘和秒的toString。也許你可以提取此:

int hour = cal.get(Calendar.HOUR_OF_DAY); 
int minute = cal.get(Calendar.MINUTE); 
int second = cal.get(Calendar.SECOND); 

的方法,格式字符串和返回(Calendar實例可以是現場的,因爲它是一個非常重量級的對象)。這樣你可以重用demo()和toString()方法中的邏輯。