Swing 来自clojure的简单java互操作

Swing 来自clojure的简单java互操作,swing,clojure,Swing,Clojure,我正试图从clojure获得一个简单的JDatePicker。下面是代码片段,但目的是通过java互操作从clojure开始工作。我甚至不能开始 这是java代码: UtilDateModel model = new UtilDateModel(); JDatePanelImpl datePanel = new JDatePanelImpl(model); JDatePickerImpl datePicker = new JDatePickerImpl(datePanel); frame.add

我正试图从clojure获得一个简单的JDatePicker。下面是代码片段,但目的是通过java互操作从clojure开始工作。我甚至不能开始

这是java代码:

UtilDateModel model = new UtilDateModel();
JDatePanelImpl datePanel = new JDatePanelImpl(model);
JDatePickerImpl datePicker = new JDatePickerImpl(datePanel);
frame.add(datePicker);
我甚至不能通过clojure的第一部分

user=> (import org.jdatepicker.JDatePicker)
org.jdatepicker.JDatePicker
user=> (UtilDateModel.)

CompilerException java.lang.IllegalArgumentException: Unable to resolve classname: UtilDateModel, compiling:(/tmp/form-init7437510410318747099.clj:1:1) 
user=> 
我试着导入这个类

user=> (import org.jdatepicker.JDatePicker.UtilDateModel)

ClassNotFoundException org.jdatepicker.JDatePicker.UtilDateModel  java.net.URLClassLoader$1.run (URLClassLoader.java:366)
user=> (import org.jdatepicker.UtilDateModel)

ClassNotFoundException org.jdatepicker.UtilDateModel  java.net.URLClassLoader$1.run (URLClassLoader.java:366)
user=> 

user=> (import '(org.jdatepicker.JDatePicker.UtilDateModel as um))

ClassNotFoundException org.jdatepicker.JDatePicker.UtilDateModel.as  java.net.URLClassLoader$1.run (URLClassLoader.java:366)
user=> (import '(org.jdatepicker.UtilDateModel as um))

ClassNotFoundException org.jdatepicker.UtilDateModel.as  java.net.URLClassLoader$1.run (URLClassLoader.java:366)
user=> (import '(org.jdatepicker.JDatePicker UtilDateModel as um))

ClassNotFoundException org.jdatepicker.JDatePicker.UtilDateModel  java.net.URLClassLoader$1.run (URLClassLoader.java:366)
user=> (import '(org.jdatepicker.JDatePicker UtilDateModel))

ClassNotFoundException org.jdatepicker.JDatePicker.UtilDateModel  java.net.URLClassLoader$1.run (URLClassLoader.java:366)
user=> 
======================= 至少我能够做到这一点,但我还不能实例化JDatePicker

user=> (import '(org.jdatepicker.JDatePicker))
nil
user=> (JDatePicker.)
CompilerException java.lang.IllegalArgumentException: No matching ctor found for interface org.jdatepicker.JDatePicker, compiling:(/tmp/form-init7437510410318747099.clj:1:1) 
user=> (doc JDatePicker)

CompilerException java.lang.RuntimeException: Expecting var, but JDatePicker is mapped to interface org.jdatepicker.JDatePicker, compiling:(/tmp/form-init7437510410318747099.clj:1:1) 
========================= ,我看到JDatePicker希望使用DefaultComponentFactory进行实例化

public class TestJDatePicker {
public static void main(String[] args) {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch (Exception e) { }
JFrame testFrame = new JFrame();
testFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent arg0) {
System.exit(0);
}
});
testFrame.setSize(500, 500);
JPanel jPanel = new JPanel();
JDatePicker picker = new DefaultComponentFactory().createJDatePicker();
....
越来越近

user=> (import '(javax.swing JComponent JFrame JPanel UIManager))
javax.swing.UIManager
user=> (UIManager/setLookAndFeel "com.sun.java.swing.plaf.windows.WindowsLookAndFeel")
UnsupportedLookAndFeelException [The Microsoft Windows Look and Feel - com.sun.java.swing.plaf.windows.WindowsLookAndFeel] not supported on this platform  javax.swing.UIManager.setLookAndFeel (UIManager.java:523)
这似乎是导入内容的首选方式:

(import '(org.jdatepicker JDatePicker JDatePanel))
org.jdatepicker.JDatePanel
user=>

在任何地方都没有所谓的UtilDateModel,你怎么知道呢?我试过JDatePicker医生,但没有结果。在C/C++中,我可以查看头文件。这似乎不正确。两者都有user=>import'org.jdatepicker.impl UtilDateModel UtilCalendarmodeli未在此处的任何源文件中定义。将jdatepicker-1.3.4.jar文件拖动到此处的实时演示部分,您可以看到它就在那里。在线源代码似乎与jar文件中的内容不同步。