0
我非常接近讓下面的程序工作。我正在使用LightTable。我在最後包含了java異常。我傳遞一個零到JDatePanelImpl構造明知是錯的,但我不知道如何構建這個屬性:簡單的clojure java interop(swing)程序不能完全讓它起作用
//This is the java definition
public JDatePanelImpl(DateModel<?> model, Properties i18nStrings)
{
...
}
這個project.clj
(defproject jdatepickertest "0.1.0-SNAPSHOT"
:description "FIXME: write description"
:url "http://example.com/FIXME"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:dependencies
[
[org.clojure/clojure "1.6.0"]
[org.jdatepicker/jdatepicker "1.3.4"]
]
)
代碼如下
(ns jdatepickertest.core)
(import
'(java.util Enumeration Locale Properties ResourceBundle)
'(org.jdatepicker JDatePicker JDatePanel)
'(org.jdatepicker.i18n)
'(org.jdatepicker.impl JDatePanelImpl JDatePickerImpl UtilDateModel UtilCalendarModel)
)
(Locale. "pt")
(defn now [] (new java.util.Date))
(defn CreateUtilDateModel[yyyy m d]
(doto (UtilDateModel.) (.setDate yyyy m d) (.setSelected true)))
(defn CreateJDatePanelImpl[model properties](JDatePanelImpl. model properties))
(defn CreateJDatePickerImpl[datePanel properties](JDatePickerImpl. datePanel properties))
(defn SetModelDefaultDate[model yyyy m d](. model setDate yyyy m d))
(defn GetDefaultStrings[]
(doto(Properties.)
(.put "text.today", "Today")
(.put "text.nextMonth", "Next month")
(.put "text.previousMonth", "Previous month")
(.put "text.nextYear", "Next year")
(.put "text.previousYear", "Previous year")
(.put "text.clear", "Clear")
)
)
(defn PutitAllTogether[]
(let [model (CreateUtilDateModel 2014 12 5)
prop (GetDefaultStrings)
jdpanel (CreateJDatePanelImpl model prop)
jdpicker (CreateJDatePickerImpl jdpanel nil)]
)
)
;(CreateUtilDateModel 2014 12 5)
(defn PutAlittleTogether[]
(let[model (CreateUtilDateModel 2014 12 5)]))
;(PutAlittleTogether)
(PutitAllTogether)