编程语言
首页 > 编程语言> > java-如何使用MigLayout控制面板的整体尺寸限制?

java-如何使用MigLayout控制面板的整体尺寸限制?

作者:互联网

我正在测试一个项目的MigLayout,但似乎无法弄清楚MigLayout可以控制正在布局的整个面板的大小.我正在改编MigLayout whitepaper中的示例.此外,我正在用Python编写并使用Jython,而不是用Java编写.也就是说,这是我当前的代码.

layout = MigLayout("fillx",
                   # Column constraints
                   "[right]rel[grow,fill]",
                   # Row constraints
                   "[]10[]10[]")
panel = JPanel(layout)

panel.add(JLabel("Enter size:"),
          "")
panel.add(JTextField(""),
          "wrap, width 150:250")
panel.add(JLabel("Enter weight:"),
          "")
panel.add(JTextField(""),
          "wrap, width 150:250")
panel.add(JButton("Ok"),
          "span 2, align center, width 100:150")

然后面板进入JFrame进行显示.当我调整框架大小时,控件会很好地调整大小并遵守其最小大小.但是,框架上没有最小尺寸,似乎也没有任何办法可以达到面板的实际最小尺寸来为框架设置尺寸.要求面板的最小尺寸将返回一个尺寸,该尺寸在设置在框架上时(加上插图)会切断按钮和文本字段的一半.

我想要的是能够为框架设置最小尺寸(不是硬编码!),以便面板适合并且没有任何控件被切断.做这个的最好方式是什么?

解决方法:

就个人而言,只要首选大小(对于pack()合适的话),我就不会对最小大小施加太大压力.如果出于某种原因,用户希望将窗口缩小到组件中的大小被剪掉,然后放开它们,也许他们只是想把窗口的底部移开,以便他们可以同时在监视器上看到剩下的东西和其他东西.

我认为任何窗口的真正最小尺寸是边框和标题栏的总和,以及标题文本和省略号的几个字符的空间.如果用户想要的东西小于允许所有组件显示清晰的东西,您将强制执行谁?

使用Web上可用的几种基于表的布局管理器中的任何一种,例如MIG Layout,您都应该能够轻松获得所需的调整大小行为.

无耻的自我插件:如果您发现MIG Layout难以使用,我认为MatrixLayout更易于使用.但是MIG布局更强大.我特意选择对MatrixLayout进行编码,以不禁止面板减小到其计算出的最小尺寸以下.

标签:miglayout,java,user-interface
来源: https://codeday.me/bug/20191107/2003225.html