Hi,
I’ve just released PureSwing, more information on PureSwing homepage.
That looks great. I won’t be surprised if I end up using this.
Wow, what a great idea. Particularly the threading not happening on the EDT.
I don’t know how you manage all of these projects at once, amazing.
great ! sounds awesome and may be very usefull
what is the minimal java version requiered ?
I base all my projects on 1.5, if you need to use lower version, tools like Retranslator are a good way to achieve that. Though I think it doesn’t use that much 1.5 features like generics… on the other hand it uses the “new” collections: List, Map, etc. that were introduced in Java 1.2 (if you’re asking in relation to Java 1.1 support).
Retroweaver?
nop, no 1.1 not for this one that was just to know the minimal version supported 1.5 sounds good for me, I always thougth that an external librarie is a better way fo GUI, AWT is pretty strong and fine but platform dependent and swing is just a bug factory.
just loked at the API, damn it is very big ! you wrote it alone ?
Well I used GNU Classpath’s reimplementation of Swing classes which I found to be at very good level, kudos to GNU Classpath team Then with my knowledge of internals I did the biggest refactor ever, I did it in several phases and added and enhanced virtual desktop subsystem from earlier attempts that used ordinary Swing with some hacks to be able to work in OpenGL smoothly. In the meantime I’ve developed proper Java2D implementation in Modern3D so it can use it for drawing. Also I’m fixing from time to time some unfinished parts of the GNU Classpath reimplementation. So yes, I did plenty of work alone (based on work of several other people) to be short
BTW, I must say that NetBeans has several performance problems, so I rather did some easier refactoring by hand (it was much faster than NB :P) or used Eclipse and find/sed for some tasks. I think it’s not that big project to justify bringing IDE to it’s knees…
Yeah, thread handling in Swing is simply weird. Also interesting property of PureSwing is that event handling always pass through your main loop (eg. can be easily integrated to existing game loop), even when modal dialogs are involved. It was achieved by using continuations (thanks to great MatthiasM’s continuations library). I think it’s ideal solution to modal dialogs problems and other things (like game code). I just wish that continuations are core part of JVM and available at any time without need to have special sections of code to be defined.
Well, these projects (JBullet, Modern3D and PureSwing) are co-products of my main project which is a game on which I work from 2007 and I’m in preparation of fully playable public alpha release very soon. I’ve actually did JBullet in early 2008, Modern3D in late 2008 and PureSwing in early 2009. I’ve published it now because these project are by now mature enough to be used in real product (the game), though not everything is yet implemented (mostly what I don’t need right now). Also it will ease a bit release of the game in case of PureSwing which is under GPL and I would have to release it anyway along the game.
Hello there jezek2!
Very interesting!
There’s a lot to improve on Swing. It would be my dream project for sure. Then, I don’t have much time.
Have you settled on a “standard” layout manager? Or will you reuse Swing’s LMs?
Of course I’d love it if you used: http://miglayout.com/ You can read a few comments about it here: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6530906
Note that it’s currently #3 top most wanted RFE for Java.
If you want another license that can be arranged.
Cheers,
Mikael Grev (creator of MigLayout)
Great job man, I like your approach and I’m curious what we could do using PureSwing and JOGL.
I’ll use any layout manager or custom component that is good Either by incorporating into core package or as an additional library. This reminds me I’ve totally forgot to release GroupLayout port which I already have.
MiGLayout is nice I would happily make it core part of PureSwing.
Not sure about this, but I think that for sources integrated directly into core package it would be better to have the GPL2+ with Classpath exception, so it would be the same so end-user would have less number of licenses to cover in his license file.
I like this simple, flexible layout manager:
http://n4te.com/temp/TableLayout.java
It was ported from Swing (here) to work with TWL, then improved, so it’ll need to be ported back to Swing. Very simple, similar to HTML tables.
Another layout manager I think is very cool:
https://designgridlayout.dev.java.net/
Jezek2,
You hereby have the permission to take the MigLayout sources and include them in your project as GPL2+ with classpath exception (or similar). If you need further confirmation contact med on grev at miginfocom dot com.
Cheers,
Mikael
Nate,
Have you tried MiGLayout?
Cheers,
Mikael
I have. MigLayout does a lot, but maybe too much for my tastes. I liked that PnutsLayout was lightweight, with a simple API similar to an HTML table. This made it easy to port to TWL as TableLayout. The simplicity does give up some functionality, but PnutsLayout/TableLayout is flexible enough to handle probably 90% of layouts.
Thanks for your feedback Nate
Cheers,
Mikael
I downloaded the zip and took a look. It seems that PureSwing depends on jdk 1.6 as several API calls and class references are java 6 specific. Is this intentional ? I only ask because above you say that you base the libraries on jdk 5 …
I am really interested in this, becase there are many swing things that would be nice to have in opengl stuff. is there any chance of you making a simple example of how to intigrate with say… slick.
cause I know that you said it was possible on the slick forums. But I was wondering how you would go about this…