我正在做一个连接到mysql数据库的系统(java应用程序)。我使用 JXdatepicker
。
我需要禁用已记录在数据库中的特定日期。
我环顾四周,看到了这个:
Date[] dates = {new date()};
jXDatePicker1.getMOnthView().setUnselectableDates(dates);
所以我尝试了一下
try {
Statement stmt = MyConnection.getConnection().createStatement();
ResultSet rs;
rs = stmt.executeQuery("SELECT date FROM transactions");
while(rs.next()){
Date [] dates = {fromStringToDate(rs.getString("date"))};
JXDatePicker.getMonthView().setUnselectableDates(dates);
}
MyConnection.getConnection().close();
} catch (Exception e) {
System.err.println("Got an exception! ");
System.err.println(e.getMessage());
}
setUnselectableDates()
方法有效,但它只禁用了我的数据库中的最后一个日期项目。我不太确定如何在 while 循环中编写它。
最佳答案
您应该使用ArrayList
类来收集所有日期,然后将其转换为如下所示的数组:
rs = stmt.executeQuery("SELECT date FROM transactions");
List<Date> dates = new ArrayList<>();
while(rs.next()){
dates.add(fromStringToDate(rs.getString("date")));
}
JXDatePicker.getMonthView().setUnselectableDates(dates.toArray(new Date[0]));
关于java - 如何禁用 JXDatePicker 上的特定日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60601922/