3
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 对象,但它仍然不起作用。帮助!

4

4 回答 4

5

因为一旦 try 块完成,变量就超出了范围。将您的 jOptionPane 代码移到 try 块内或将 createDate 声明移到 try 块外。

于 2013-01-22T13:54:03.347 回答
1

您在 try-catch 块内定义变量,这是它自己的范围。在 try 块之外,变量“超出范围”,因此稍后会“不存在”。

于 2013-01-22T13:53:56.133 回答
0

变量的范围在 try { } 内,因为它是声明它的地方。你可以这样做:

Date createDate;
try
{
    createDate = dateFormat.parse(selectedDate);
}
....
于 2013-01-22T13:54:11.110 回答
0

您已经在 try 范围内声明了变量。您使用了“Date createdDate = ....”,这意味着一旦超出 try { .. } 的范围,它将不再存在。确保你声明它超出了尝试的范围,看看它是否有效!

于 2013-01-22T13:54:14.253 回答