【发布时间】:2014-06-10 04:05:45
【问题描述】:
这是我的代码:
public class InfoPanel extends JPanel{
... ... ...
... ... ...
public InfoPanel(){
... ... ...
... ... ...
MigLayout lManager = new MigLayout();
setLayout(lManager);
add(lblName,new CC().pos("50", "80"));
add(txtName, new CC().pos("90","80").width("170").wrap().gap("r"));
add(lblOccupation,"pos 20 100");
add(txtOccupation,"pos 91 100,w 170,wrap,gap r");
它有正确的输出。 但我想使用任何内置代码为txtName、txtOccupation 计算pos()。 任何人都可以帮助我做到这一点。
【问题讨论】:
-
“内置代码”是什么意思?通常你不需要从 MigLayout 调用方法。您只需将约束添加为字符串,其余的由 MigLayout 完成。你能更准确地描述你想要什么吗?
-
是的,对于 txtName(JTextField) 我使用 pos 90 80,我为 x 手动计算 90,是否可以不手动计算。例如,我们可以在 SpringLayout 中做到这一点。就是这样。
-
您真的要使用绝对定位吗?因为通常您只需将组件彼此相对放置,而 layoutManager 会完成其余的工作。我总是对绝对定位有不好的体验,因为它很难维护。描述你想要的结果,也许没有绝对定位有更好的解决方案。
-
是的,你说得对。正如您所说,“因为通常您只需将组件彼此相对放置,其余部分由 layoutManager 完成”。你能写一些代码来完成我已经写过的工作吗?谢谢。
-
当然可以。但是我需要更多关于你想要什么的信息。我看到的是某些绝对位置的 4 个组件。
标签: miglayout