Изменение размера компонентов и шрифта с помощью MigLayout

Я довольно новичок в Layout Managers и совершенно не знаю, как автоматически изменять размер шрифта с помощью MigLayout Менеджер. Мне уже удалось изменить размеры компонентов с ограничением увеличения и заполнения, но мне кажется, что размер шрифта не меняется в зависимости от размера компонентов. Как мне это сделать?

Вот мои несколько строк кода:

public class Projekte {
public Projekte()
{
    main();
}
public static void main() {

    JFrame projekte = new JFrame();
    projekte.setBounds(100, 100,1080,1900);
    projekte.setExtendedState(Frame.MAXIMIZED_BOTH);
    projekte.setTitle("Testframe");
    projekte.getContentPane().setBackground(new Color(255,255,255));
    projekte.getContentPane().setLayout(new MigLayout("", "[][][][][][grow,fill][][][][]", "[][][][][][][][][][][grow,fill][][]"));

        JLabel lblTest = new JLabel("Test");
        projekte.getContentPane().add(lblTest, "cell 4 10,alignx trailing");
        JTextField textField = new JTextField();
        projekte.getContentPane().add(textField, "cell 5 10");
        textField.setColumns(10);
        JLabel lblTest_2 = new JLabel("Test_2");
        projekte.getContentPane().add(lblTest_2, "cell 6 10,alignx trailing");
        JTextField textField_2 = new JTextField();
        projekte.getContentPane().add(textField_2, "cell 7 10");
        textField_2.setColumns(10);
        JLabel lblTest_3 = new JLabel("Test_3");
        projekte.getContentPane().add(lblTest_3, "cell 4 11,alignx trailing");
        JTextField textField_3 = new JTextField();
        projekte.getContentPane().add(textField_3, "cell 5 11");
        textField_3.setColumns(10);
}
}

Я думаю, что это довольно легко, но я не могу найти решение, может быть, вы можете помочь.

0 ответов

У шрифта есть атрибуты, но любой из них относится к макету - вы можете вручную масштабировать шрифт с некоторым параметром, используя diverveFont(размер с плавающей точкой) - создает новый объект Font путем репликации текущего объекта Font и применения к нему нового размера.

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int screenWidth = screenSize.width;
float scale = screenWidth/1000;
label.getFont().deriveFont(scale);
Другие вопросы по тегам