【发布时间】:2019-04-09 18:47:11
【问题描述】:
我对布局管理器很陌生,我完全不知道如何使用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);
}
}
我认为这很容易,但我似乎没有找到解决方案,也许你可以帮忙。
【问题讨论】:
-
public static void main()嗯?为什么不输入String[]作为参数(并将该代码包装在 Swing EDT 中),添加导入并使其成为 minimal reproducible example? -
我不明白你的意思,代码简单易懂,准确地显示了我的问题。如果您运行此代码,您将看到 Textfields 正在调整框架的大小,但字体大小没有,表单还没有完成,这只是我的第一步,但如果自动调整字体大小不工作,然后我可以取消使用此布局管理器。
-
I don't seem to get the font-size to change with the size of the components.- 字体大小不会改变。每个组件根据组件的字体、边框、文本等确定自己的首选大小。然后布局管理器使用此信息将组件定位在框架上。如果你想要更大的字体,那么你需要在每个组件上使用 setFont(...) 方法。 -
我该怎么做?调整框架大小时必须动态调整字体大小,但我不知道如何调用 Resize 方法以及如何实现 font-size 使其看起来不奇怪
标签: java swing layout-manager font-size miglayout