Re: Border vs BorderFactory
BorderFactory creates Borders, (Border is an interface, BorderFactory a class), thus they are quite different.
At first blush, it appears that Border and BorderFactory do essentially the same thing
It is a Factory class, having convenient methods for creating Borders. This is opposed to having to know the ins and outs of all the Border implementations (BevelBorder, LineBorder, etc...). Further, encapsulating the creation of these class through a Factory class allows the Factory to create and reuse instances of an object (this isn't true for all the methods of BorderFactory, but as the API states: "Wherever possible, this factory will hand out references to shared Border instances.").
why would I want to use one or the other?
If you don't know what a Factory class is, you might wish to study up on the Factory design pattern: Factory method pattern - Wikipedia, the free encyclopedia