String selectedDate = "2012-" + createdMonth
+ "-" + createdDay;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-mm-dd");
try {
Date createdDate = dateFormat.parse(selectedDate);
} catch (ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
int x = JOptionPane.showOptionDialog(frame,
"Here is your new booking schedule:\n "
+ "Timeslot: "
+ selectedTimeslot + "\n"
+ "Date: " + createdDate + "\n"
+ "Continue?",
"Booking Confirmation",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE, null,
options, options[1]);
问题是JOptionPane中的createdDate无法解析为变量。这是为什么?我已经尝试过所有的东西,比如在try catch之外初始化Date对象,但它仍然不起作用。救命啊!
答案 0 :(得分:5)
因为一旦try块完成,变量就超出了范围。将jOptionPane代码移动到try块内部或将createDate声明移到try块之外。
答案 1 :(得分:1)
您在try-catch块中定义变量,这是它自己的范围。在try块之外,变量超出范围'因此'不存在'在稍后的时间点。
答案 2 :(得分:0)
变量的范围在try {}内,因为它是声明它的位置。你可以这样做:
Date createDate;
try
{
createDate = dateFormat.parse(selectedDate);
}
....
答案 3 :(得分:0)
您已在try的范围内声明了该变量。您使用了“Date createdDate = ....”这意味着一旦超出try {..}的范围,它将不再存在。请确保将其声明为超出了try的范围,看看是否有效!