title: What are the best practices for internationalizing a Java Swing desktop application?
body: <p>I'm sure there are a lot of methods, but what's the recommended way to do this that has the least amount of impact to your code? </p>
  
  <p>The obvious is that you create properties files, but how do you swap the values in the rendering? In J2EE you always just re-render the whole page so it's easy. But in Swing apps, do you just add the code for the .getProperty() in the paintComponent(Graphics g) method? </p>
  
  <p>If that's the case, doesn't it seem heavy since now you'll have to override this method everywhere where before you didn't need to...</p>
  
  <p><strong><em>Additional:</em></strong> How do you setup a notification system to re-render all currently visible components without forcing some kind of registration pattern?</p>
  
  <p>I guess if I overwrite paintComponent(Graphics g) all I have to do is fire an event that something has changed and the paintComponent(Graphics g) method will be called...</p>