We have all read the "Effective Java" book and know that we should prefer interfaces over abstract classes.
This is a known and respected pattern which should be used wherever possible.
However the years in the JDK team tauhgt me not to blindly trust
to good practices from the world of application programming.
A distinctive feature of the JDK is backward compatibility.
I truly love the Swing GUI toolkit, I enjoy its flexibility, opennes and great abilities.
I know that some people say that Swing is too difficult to learn,
and I partly accept it because it took me several years working in the Swing team
to get the whole picture of the AWT, Java 2D and the Swing itself.
The Swing history counts more then 10 years and it is definitely not about end.
The first rule of Swing programming is to always interact with Swing components in the Event Dispatch Thread (EDT, for short). Swing is single-threaded (as a lot of UI toolkits are) and as such it can only makes guarantees about the state of Swing components when interacted with properly on the EDT. Some Swing methods are thread-safe, such as JComponent.repaint. Recently, I...
Announcing the release of Apache Pivot 2.0.
Sometimes it makes sense to wrap a single code line into a class. An example is implementing the Range pattern.
Today I had enough from typing lenghty paths and ".jar" extensions, so I taught Windows to deal with JARs the same way it deals with EXEs and CMDs.
We are making progress on the next release of Leonardo, an open source desktop Java drawing program. One of the key features scheduled for the next release is a webservice that lets users save and share reusable symbols they've created. For example, someone could create a set of GWT mockup widgets, then share this set with others.
The challenge I face is that I'm mainly a client side developer....
Ruby Red, the first full release of Leonardo Sketch is ready for download.
Leonardo is a desktop open source drawing program written entirely in Java.
How to obtain values from the Event Dispatch Thread.
Google makes their extensive map collection available free of charge. Now it is seen in sites all over the web, but in this entry, I'll show you how simple it is to use in Java!
Content available at: http://blogs.sun.com/arungupta/entry/java_ee_6_glassfish_silicon
The question of how to combine Swing and Apache Pivot components comes up often enough that I thought I would write a quick blog entry about it.
A decade from now 90% of people will use phones, slates, or netbooks as their primary computing device. This is a very exciting development in the software world and promises to reshape the way we make software (check out the great stuff our lead developer is doing in his day job at Palm), but Amino isn't for that world. Amino about that 10%: the content creators who need killer desktop apps, the...
The www.abelski.com web site offers free (for personal and academic usage) courses about various topics in software development. The site focuses on Java technologies.
Why did JavaFX 1.x divide the Java community so much? How does the new 2.0 roadmap fit into the current (and future) landscape of RIAs? Is Paul the Octopus on Twitter? Some or none of these questions may be answered in this blog post.
The biggest announcement - and the biggest surprise for many - of JavaOne 2010 was certainly Oracle's new plans for JavaFX 2.0... or, should we say, Swing 2.0?
I mentioned during my BOF at JavaOne a new component that is close to ready for moving into SwingX: JXScrollMap.
Part of the way that SwingX works is that members first join the incubator project. Members contribute ideas to the incubator, flesh them out, and eventually bring them into SwingX. The incubator contains lots of stuff from really mature ideas to things that aren't. Some of the ideas...
SwingLabs BOF Presentation Slides
As it became almost a tradition we have rolled out next SwingX release just before the SwingLabs BOF at JavaOne last night.
You can get the release from our website, or directly from the java.net or also from the maven central repo. Please note that the artifactID has changed from swingx to swingx-core due to changes in the structure of the project.
Thanks a lot to all who contributed to...
Putting our heads in the sand is not a good development strategy.