Can I set the DPI resolution of my Java Swing application without changing the systems' DPI setting?

前端 未结 3 1942
忘掉有多难
忘掉有多难 2021-02-07 21:21

I have a Java application using the Substance LookAndFeel with Windows as the the target platform and I want to increase the DPI setting of my application without chang

3条回答
  •  抹茶落季
    2021-02-07 21:50

    Don't know if that is possible. The look&feel would have to support it, and as far as I know, the Windows Look&Feel does not. Here's a hack which you may consider: Iterate through all the fonts defined in your look&feel and redefine them to be slighly bigger. Here is a code snippet that does this:

    for (Iterator i = UIManager.getLookAndFeelDefaults().keySet().iterator(); i.hasNext();) {
        String key = (String) i.next();
        if(key.endsWith(".font")) {
            Font font = UIManager.getFont(key);
            Font biggerFont = font.deriveFont(2.0f*font.getSize2D());
            // change ui default to bigger font
            UIManager.put(key,biggerFont);
        }
    }
    

    I suppose you could take this one step further and redefine scale borders proportionally as well, but that gets very complicated very quickly

提交回复
热议问题