Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Extending a Java Swing class in Clojure

I'm trying to extend a Java Swing component in Clojure, i.e. I want to extend a javax.swing.JComponent and add some custom methods implemented in pure Clojure in addition to all the standard inherited methods.

I've tried using "proxy" which works great if I just want a single instance (in the same way as an anonymous inner class). However I'd really like a named class so that I can generate an arbitrary number of instances.

What's the recommended way of doing this?

like image 815
mikera Avatar asked Jun 01 '10 21:06

mikera


1 Answers

Use gen-class (note that you can use it as an in-line function or in the namespace declaration).

(gen-class :extends javax.swing.JComponent ...)
like image 52
G__ Avatar answered Sep 18 '22 19:09

G__