Some of you may have noticed that activity on the site has been rather slow recently and that no new Swing Components have been released in the last weeks. The reason for this is that the developers at Custom Swing Components have spent the last few weeks pouring all their effort into developing a Twitter Client intended to demonstrate just how awesome Swing applications can be.
The goal at the outset of the project was to build the fastest and best performing Twitter clients available in the market. Although these are extremely lofty goals, we always aim high.
The previous article in this series, titled Insets Matter, introduced us to a new Swing developer named Toni and documented his efforts to create a custom swing component named the Orb. The purpose of the Orb is to draw a simple blue circle within the bounds of the component.
Toni's current code and output can be seem below.
This is the first article in a series I will be posting detailing a number of tips and common pitfalls I have encountered while developing custom swing components for Java.
I have decided to start with a discussion around how a component's border and insets affect developing a custom swing component. To illustrate this concept I am going to ask you to put yourself into the shoes of a young developer called Toni.
I'm really excited to announce that the site is undergoing a rebranding exercise to change its name to Custom Swing Components. The purpose of the rebranding is to bring the site in line with Sun's trademark and legal guidelines. I must admit the Sun documents made for some interesting reading, and the subtle nuances around usage were very fascinating. The original usage guide from Sun was very explicit regarding what was permitted and what was not permitted, however the new Oracle guidelines seem a bit more vague.
This simple tutorial will take you through the steps required for transforming a standard Custom Swing Components rater to a tucows inspired rater.
Now that the calendar is done and dusted, work has commenced on our next product. I'm sure you can deduce what it is :-)
Thanks to the joys of google analytics I get the pleasure of seeing the keywords people search for when they arrived at my site. One of the humorous problems I have encountered is that due to my initial choice of blogs regarding threading in swing. Google is now utterly convinced that this site is about threading and not custom Java™ swing component development. (I keep trying to use the phrase 'custom Java™ swing component development' in my blogs in the hope that google will take the hint, but time will tell).
Going through my mail recently, I have noticed that there are many questions relating to the differences and similarities between an accordion and a tabbedpane. In truth the accordion is not intended to be used as a blanket replacement for tabbedpanes. Although these components are extremely similar, they are not perfect replacements for one another. In some situations an accordion would be the preferable and in other situations a tabbedpane would be more appropriate. The purpose of this blog is to help you know when to use which component.
Last week I was involved in a job interview for the role of a senior level swing developer on behalf of an organization. The organization is building a thick Java™ client to be deployed across over a dozen countries, with an expected user base measured in the thousands. The development team has a strong swing skill base and is often required to build custom components to complete the use cases drawn up by the business analysts. Some of the custom components built include a calendar control, an animated navigation structure, a combobox that renders a table, and all sorts of other pieces of swing bling!
The candidate arrived on time, had a positive attitude and was genuinely excited about the interview. Things were going pretty well and I asked the question: “Have you ever built any low level custom swing components?” The candidate answered “No, but why would you need to do that, you can just find whatever you need online”. His response reminded me of the old ‘build vs. buy’ question that managers and developers face on a regular basis. Do you build the component yourself or do you go out and buy the component you need.
Less is more.
In the previous blog I discussed the merits of the SwingWorker and how it solves the problems of offloading processing to a background task, as well as allowing your application to react once the task is complete (all in a thread safe way).
During the course of my career as a swing developer I found myself on numerous occasions writing the same code to create and execute a SwingWorker from an ActionEvent. To be honest, nothing annoys me more than rewriting the same code again and again, especially if it contains a lot of conditional logic!
The LATEST chatter
- Halted all development on the twitter client. The application in its incomplete state is available at: http://tinyurl.com/6ktd8xw — 2 years 9 weeks ago
- Java Swing Components is currently undergoing a rebranding exercise to Custom Swing Components. The url however will remain the same. — 2 years 31 weeks ago
- Java Swing Components is proud to announce the release of our rater component. http://www.javaswingcomponents.com/product/rater — 2 years 33 weeks ago
- Java Swing Components is proud to announce the release of our first bundle including a fun demo. http://www.javaswingcomponents.com/products — 2 years 37 weeks ago
- New post: New Component Teaser http://tinyurl.com/35hxfnn — 2 years 38 weeks ago