(1) The reality
JDK 1.2 and 1.3 suffer from performance issues when using Remote X for display. However, there are some relatively easy tweaks that will improve remote X performance and can make the difference between unacceptable and pokey-but-usable Swing performance in a Remote X environment.
(2) What to do:
RepaintManager.currentManager(null).setDoubleBufferingEnabled(false);
This combination won't get performance quite as good as 1.1, but it's a heck of a lot better than 1.2 or 1.2.2.scroller.getViewport().setScrollMode(JViewport.SIMPLE_SCROLL_MODE);
Double-buffering and the fancier scroll mode improve performance when running locally - its only when running in a Remote X situation that they have the reverse effect. Thus these tweaks will actually hurt performance in the local case. If you have to run in both local and remote environments you will want to have a command line argument to switch these tweaks on and off.