У меня есть приложение java swing с использованием JTree.
Недавно я перешел на монитор UHD, и теперь JTree не масштабируется красиво.
У меня такое ощущение, что он использует значок, чтобы масштабировать высоту линии, но не имеет понятия, как влиять на это сам.
Помните, что если UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
не используется, на новом мониторе он невелик.
См. Скриншоты/простой пример кода ниже.
jtree high DPI не масштабируется
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTree;
import javax.swing.UIManager;
public class JTreeTest extends JFrame
{
private JPanel contentPane;
/**
* Launch the application.
*/
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
try {
// Set System L&F
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName());
JTreeTest frame = new JTreeTest();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public JTreeTest()
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
JTree tree = new JTree();
contentPane.add(tree, BorderLayout.CENTER);
}
}
нормальный скриншот разрешение JTree:
UHD скриншот разрешение JTree:
Спасибо.