Simple clojure java interop (swing) program can't quite get it to work -


i close getting program below work. using lighttable. have included java exception @ end. passing in nil jdatepanelimpl constructor wrong, not sure how build property:

//this java definition public jdatepanelimpl(datemodel<?> model, properties i18nstrings) { ... } ​ 

this 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"]     ] ) 

code follows

(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 [] (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) 

ok here final program. please aware complete beginner clojure programmer, hence solution (with sof) may not idiomatic clojure. note code contains lines not used (e.g., locale), there because useful extend program. useful things try are, how display week @ time instead of day? month view? if clicks on day/week/month, how add listener gets passed date information clicked? can useful things cast java.sql.date (or clojure's equivalent) pass database function.

the next obvious thing learn how write unit tests these functions, don't know how do.

the project.clj file

(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"]     ] ) 

the code core.clj

(ns jdatepickertest.core)  (import    '(java.util enumeration locale properties resourcebundle)    '(javax.swing jframe)    '(org.jdatepicker jdatepicker jdatepanel)    '(org.jdatepicker.i18n)    '(org.jdatepicker.impl jdatepanelimpl jdatepickerimpl utildatemodel utilcalendarmodel) )  (locale. "pt")  (defn [] (new java.util.date))  (defn createawindow[]   (doto(jframe. "hello frame")   (.setsize 400 200)   (.setvisible true)) )  (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 [window   (createawindow)         model    (createutildatemodel 2014 12 5)         prop     (getdefaultstrings)         jdpanel  (createjdatepanelimpl model prop)         jdpicker (createjdatepickerimpl jdpanel nil)]          (.setcontentpane window jdpanel)   ) )  ;(createutildatemodel 2014 12 5)  (defn putalittletogether[]   (let[model (createutildatemodel 2014 12 5)]))  ;(putalittletogether)  (putitalltogether) 

Comments

Popular posts from this blog

python - mat is not a numerical tuple : openCV error -

c# - MSAA finds controls UI Automation doesn't -

wordpress - .htaccess: RewriteRule: bad flag delimiters -