Prefs.setGUIScale() option makes ImageJ finally usable on Linux on hiDPI displays (where to my knowledge AWT components never scale no matter which JRE you use). Thanks for that.
But there were still many widgets and components that needed to be patched: I tried to do it here with PR#73, which applies the scaling to almost all the remaining dialogs and widgets, including the Histogram & Plot Windows and the Threshold widget (the biggest annoyances for me).
Also, note that in Linux, Swing components can scale but only under certain circumstances: E.g., With Ubuntu and Java 8 only if you use the GTK L&F. Thus, it is not clear to me what to do on those cases, as there is the risk of over-scaling: It is happening already with the built-in IJ Command Finder: Fonts will appear exaggerated if you set Prefs.setGUIScale() to
2 under the GTK+ L&F). So I tried to put in place some basic detection of pre-scaling by the UIManager, but it won’t be perfect.
Anyway, using a 4K screen at full resolution is so liberating that I’m fine with whatever happens with the few Swing components IJ1 uses. Now the only thing missing is antialiasing text in IJ’s GUI!