Make all viewer parameters static. Viewer instances are isolated from each other by spawning a completely new process for each viewer, rather than simply starting a new thread.  All dialogs were redesigned to better match the look of the native viewer, and also to be more tolerant of sizing differences between platforms.
diff --git a/java/com/tigervnc/vncviewer/BIPixelBuffer.java b/java/com/tigervnc/vncviewer/BIPixelBuffer.java
index 9612b36..1634ebd 100644
--- a/java/com/tigervnc/vncviewer/BIPixelBuffer.java
+++ b/java/com/tigervnc/vncviewer/BIPixelBuffer.java
@@ -27,8 +27,8 @@
 
 public class BIPixelBuffer extends PlatformPixelBuffer implements ImageObserver
 {
-  public BIPixelBuffer(int w, int h, CConn cc_, DesktopWindow desktop_) {
-    super(w, h, cc_, desktop_);
+  public BIPixelBuffer(PixelFormat pf, int w, int h, DesktopWindow desktop_) {
+    super(pf, w, h, desktop_);
     clip = new Rectangle();
   }