In object oriented programming, polymorphism is a feature that allows you to provide a single interface to varying entities of the same type. This is analogous to the interpretation of the same concept in the field of Biology.
To understand how this works in Java, we must consider inheritance and the ways by which the Java programming language makes method calls.
When you create a class in Java...
on Jan 7, 2014
There are mainly two ways by which one may reuse classes in Java. The first is by way of composition. Composition provides a way to compose your classes from objects of existing classes, essentially making use of the objects' functionality as opposed to its form.
The second method is by what we call inheritance, which describes how one may derive a new class as a type of an existing class. With...
on Dec 18, 2013
A key consideration for the library designer in the normal conduct of operations is maintaining the ability to make changes or improvements to the library at any time without requiring the consumers (client programmers) of that library to do the same. In Java, a library consists of a logical grouping of .class files packaged together to make a working program.
An apt analogy to this point may be...
on Dec 8, 2013
Operators in Java work much like they do in mathematics, producing a value from one or more operands. An operand is any quantity on which an operation can be performed and in Java these include primitives and objects.
Basic arithmetic operators in Java include addition (+), subtraction (-), multiplication (*), division (/) and the assignment operator (=), all of which constitute the binary...
on Nov 11, 2013
Much of what you do in Java is to define classes that package data and functionality together by concept to represent the desired problem-space element. When you instantiate a class, you create an object that has it's own piece of memory made up of other objects. Java has a peculiar means of manipulating these elements in memory. This is to say even though you treat everything as an object, you...
on Oct 25, 2013
Silicon Valley Code Camp is one of the best known secrets and one of the best organized conferences in the Bay Area.
I have the pleasure to speak at this conference for the past two years and am amazed at its growing popularity.
Here are some statistics for this year
4500 registrations and registration was closed
The Code Camp consists of these points:
By and for the developer...
on Oct 6, 2013
One day I found myself in the situation that I had to write a unit test which checks whether my code is annotated in a particular way. I wondered how one could do that without doing an integration test that actually processes that annotations. My first idea was to use the Reflection API, which in fact worked, but was not looking smart. In fact, I wanted to have a Hamcrest matcher instead, since...
on Dec 27, 2013
I just finished delivering a talk at Oredev 2013 on better concurrency in Java 8. With Lambda’s being the biggest new feature I naturally needed to address what they had to offer. I wanted a meatier example than the ones where you write a query to find all the people that make more than you do so I decided to write the example around was on how to sum up all the application stopped time records...
on Nov 10, 2013
Each of these objects can be described in terms of the classes or types to which they belong for instance a maple tree belongs to the class of tree or is a type of tree, a bicycle is a type of cycle, a car is a type of vehicle. OOP is thus a very powerful language abstraction that allows you to simplify the complexity of a problem while retaining its value. Java is an Object Oriented...
on Oct 16, 2013
Just recently I was engaged to assist with an application that wasn’t behaving. The application, running in a 1.7.0_45 JVM, relied heavily on a 3rd party SAAS framework. That vendor provided my client with a list of 26 different JVM flags that should be set. When faced with this long list of flags I couldn’t resist asking why all the flags and why these flags. After all there are more than 700...
on Dec 11, 2013
Recently I have come upon a blog article which discussed why Swing has to be Deprecated. My understanding of the author's argument was that since Swing looks ugly compared to HTML5 and nobody uses Swing anymore that it should be deprecated in favor of JavaFX. The theory was that by deprecating Swing and forcing users to upgrade to JavaFX then all Java GUIs will be better with the...
on Dec 2, 2013
In the previous post in this mini-series regarding the work I do on NASA Ground Systems, I showed some screenshots demonstrating data visualization. The basic tech stack involves combining the NetBeans Platform with custom JavaFX views. This pattern provides some very useful "At-a-Glance" (AoG) displays associated with daily data product generation.
AoG is typically appropriate, especially...
on Nov 20, 2013
So you need to build a visualization of data that must loaded and interface dynamically. Good looks are important so you chose JavaFX but you are starting from an existing Swing based application. No problem right?
But what if you have a lot of data to load into your Scene? How do you maintain a positive User Experience?
Maybe you are using the NetBeans Platform because... well...
on Nov 13, 2013
As I get closer to deploying our 4th Operational Release of the Duke's Choice award winning GEONS Ground System Software I'm combining the NetBeans Platform with custom JavaFX views. This pattern provides some very useful "At-a-Glance" displays associated with daily data product generation. I'm fortunate to have access to quite a bit of complex and timely data much of which is custom to the...
on Nov 10, 2013
Visual Library is a library in NetBeans, which you can use in standalone Java apps, for doing beautiful, complex, animated layouts. JUNG is a library for exploring graphs of connected data. What if we put those two things together? That's what I did. The result is on GitHub.
Video demo and more info over on my timboudreau.com blog.
on Sep 4, 2013
Due to a painting regression in JXPanel for Synth-based Look and Feels, we are releasing a regression fix. The new files should appear in Maven Central soon.
on Feb 28, 2013
I am pleased to announce the release of SwingX 1.6.5. The new release is available in Maven central.
As always, you may report bugs or request new feature via JIRA. You may also contact us in the discussion forum.
Release Notes - SwingX - Version 1.6.5
[SWINGX-1336] - Flickering in JXPanel with alpha < 1
[SWINGX-1449] - JXButton doesn't update font if...
on Jan 29, 2013
I will be presenting the following sessions at Silicon Valley Code Camp 2013. For those in the Bay Area, Silicon Valley Code Camp is on Oct 5,6 2013 in Foothill College, Los Altos. It is a very well organized conference by the developers for the developers. This year has 232 sessions and 4500 registrations and am always amazed at the way Peter Kellner and his team pull this off!
These are my...
on Oct 2, 2013
Very soon, it will be time for the annual Java One conference in San Francisco, California.
Thousands of Java-fanatics will make the journey to my favorite city "by the bay" (and my home town).
Thousands more Java-fanatics will not attend (including me) and wish they could.
I hope all attendees will have a great and productive time at Java One 2013.
My general advice to attendees is, "Make the...
on Aug 25, 2013
Have you wanted to do something with asynchronous I/O? I did. After doing some work with Node.js, I wanted to find a way to get some of the goodness of its programming model for Java.
The Acteur project is the result - a framework for building scalable, asynchronous web applications using Netty + Guice - was the result. The programming model is a little unusual - you treat constructors as...
on Apr 7, 2013