based new font size on screen resolution instead of screen size

This commit is contained in:
helmut.neemann 2017-05-10 12:49:53 +02:00
parent 2880b37d4d
commit 92af0a7dc8
2 changed files with 12 additions and 8 deletions

View File

@ -52,7 +52,7 @@ public class TestDataDialog extends JDialog {
setDefaultCloseOperation(DISPOSE_ON_CLOSE); setDefaultCloseOperation(DISPOSE_ON_CLOSE);
JTextArea text = new JTextArea(data.getDataString(), 30, 50); JTextArea text = new JTextArea(data.getDataString(), 30, 50);
text.setFont(new Font(Font.MONOSPACED, Font.PLAIN, (int) Screen.getInstance().getFontSize())); text.setFont(new Font(Font.MONOSPACED, Font.PLAIN, Screen.getInstance().getFontSize()));
JScrollPane scrollPane = new JScrollPane(text); JScrollPane scrollPane = new JScrollPane(text);
getContentPane().add(scrollPane); getContentPane().add(scrollPane);

View File

@ -1,5 +1,10 @@
package de.neemann.gui; package de.neemann.gui;
/*
* Win 150% : getScreenResolution() = 144
* Win 100% : getScreenResolution() = 96
*/
import javax.swing.*; import javax.swing.*;
import java.awt.*; import java.awt.*;
import java.awt.geom.AffineTransform; import java.awt.geom.AffineTransform;
@ -16,7 +21,7 @@ public final class Screen {
private static Screen instance = new Screen(); private static Screen instance = new Screen();
} }
private final float size; private final int size;
private final float scaling; private final float scaling;
private final Font font; private final Font font;
@ -30,14 +35,13 @@ public final class Screen {
private Screen() { private Screen() {
Font font = new JLabel().getFont(); Font font = new JLabel().getFont();
float scaling = 1; float scaling = 1;
float size = 12; int size = 12;
try { try {
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); int s = Toolkit.getDefaultToolkit().getScreenResolution() * 12 / 96;
float s = screenSize.height / 90f;
if (s > 12) { if (s > 12) {
scaling = s / 12; scaling = s / 12f;
size = s; size = s;
font = font.deriveFont(s); font = font.deriveFont((float) s);
for (Object key : javax.swing.UIManager.getLookAndFeel().getDefaults().keySet()) { for (Object key : javax.swing.UIManager.getLookAndFeel().getDefaults().keySet()) {
if (key.toString().endsWith(".font")) if (key.toString().endsWith(".font"))
javax.swing.UIManager.put(key, font); javax.swing.UIManager.put(key, font);
@ -95,7 +99,7 @@ public final class Screen {
/** /**
* @return font size * @return font size
*/ */
public float getFontSize() { public int getFontSize() {
return size; return size;
} }