Skip to content

weirdkid/Quaqua

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Quaqua-JFC - pure Java JFileChooser for Mac

A fork of karlvr's Quaqua, which appears to be the official continuation of Werner Randelshofer's original work here: http://www.randelshofer.ch/quaqua/

Mr. Randelshofer did a awesome job on Quaqua for many years, but then he had to let it go. Perhaps due to less interest in Java on Mac, Java Swing, or he just got bored. You can tell by looking at the code (through the lens of what code looked like during the Java 1.5-1.6 era) that Randelshofer cared deeply about responsiveness and accuracy of his look and feel.

I'd been using the Quaqua JFileChooser for years. It's hands-down THE BEST JFileChooser component for Mac. The default Swing one is barely usable for Mac users, so if any part of Quaqua needs to live on, it's this.

However, it had been aging not so gracefully. It relied on native code that sometimes crashed on new versions of macOS. It used outdated system resources to populate the sidebar. It really hasn't been substantively updated since at least macOS 10.9 (Mavericks).

My goal here is to try to morph Randelshofer's JFC into a pure Java implementation that works good enough on all Macs. Randelshofer put a lot of effort into making this component look exactly like the native one, but I'm going more for "close enough to native" but still leaps and bounds better than the Swing default.

Now that JavaFX is being spun out of Java, some may yet still find this useful.

Requirements/Dependencies

  • Java 8, but tested with Java 11 and 17
  • TwelveMonkeys ImageIO 3.5-SNAPSHOT or newer, include these artifacts:
    • core
    • metadata
    • icns

Code notes:

  • There are variations of the UI for every version of macOS up through Mavericks, but the last one to not rely on native code was the QuaquaLeopardFileChooserUI. The QuaquaManager only provides this option for UI now.
  • QuaquaFileSystemView picks a macOS version-specific implementation of a FileSystemView. Ever since Lion, they all use OSXLionFileSystemView.

About

Pure Java JFileChooser for Mac - forked from Quaqua

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 88.2%
  • HTML 11.6%
  • CSS 0.2%