我尝试使用JOptionPane让当天的时间出现在窗口中,并按下确定按钮让窗口更新时间。
我有时间出现但是当我点击" OK"时无法更新它。按钮..
这是我的代码(我是初学者,所以它有点"凌乱",我知道!)
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 :(得分: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() + " ";
}
答案 1 :(得分:0)
在toString()中,您应该获得当前的小时,分钟和秒。也许你可以提取这个:
abstract
到一个方法,格式化为字符串并返回(Calendar实例可以是一个字段,因为它是一个非常重量级的对象)。这样,您就可以在demo()和toString()方法中重用逻辑。