Изменение размера компонентов и шрифта с помощью 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);