我试图获取我的Layout
JDialog
以适合我要移植到Java的程序的外观,在此之前,我已经使用了多个LayoutManager并获得了巨大的成功,但是由于某些原因,我似乎无法获得此布局都在工作。我的目标是有权利(东)侧的JDialog
包含一个“查找下一个”和自上而下的命令“取消”按钮,然后在下面的任何额外的空间,从而使两个按钮总是在的顶部JDialog
,但由于某种原因,BoxLayout
它会不断忽略更改a宽度的任何尝试(这是我迷失的地方)JButton
。代码如下。
JButton findNext = new JButton("Find Next");
JButton cancel = new JButton("Cancel");
cancel.setPreferredSize(new Dimension((int)findNext.getPreferredSize().getWidth(),
(int)cancel.getPreferredSize().getHeight()));
JPanel example = new JPanel();
example.setLayout(new BoxLayout(example, BoxLayout.Y_AXIS));
example.add(findNext);
example.add(cancel);
example.add(Box.createGlue());
无论我尝试什么,cancel
都始终保持其正常大小。我已经尝试过,setMinimumSize()
并且setMaximumSize()
使用setPreferredSize
与没有运气相同的参数。我什至尝试过,cancel.setPreferredSize(new Dimension(500, 500));
并且仅调整了按钮的高度,它仍然保留了给定的默认宽度。
要清除任何问题,这是它的外观(现在我已经完成了),您会看到“查找下一个”和“取消”按钮的大小不同。
我知道这是一个老问题,但我真的看不到很好的解释。因此,为了让搜寻者不知所措,我将加收我的两分钱。
Swing中与调整组件大小相关的三种html" target="_blank">方法是:setPreferredSize(),setMinimumSize()和setMaximumSize()。但是,重要的是,取决于是否使用特定的布局管理器来支持这些方法。
对于BoxLayout(原始海报使用的布局):
BoxLayout
兑现此BoxLayout
兑现OP正在使用Y_AXIS BoxLayout,这就是为什么仅更改他的身高的原因。
更新:
我为所有布局管理者整理了一个页面,其中包含相同的信息。希望它可以帮助一些搜索者:http : //thebadprogrammer.com/swing-layout-manager-
sizing/
问题内容: 是否可以授予用户查看权限,但不能更改或删除。 目前,我所看到的唯一权限是“添加”,“更改”和“删除” …,但是其中没有“读取/查看”功能。 我确实需要这样做,因为有些用户只能查看管理面板,以查看已添加的内容。 问题答案: 在admin.py中 有了这个: 然后通过删除以下行来删除提交按钮:
问题内容: 如何使用T-SQL更改表中的一个属性以允许为null(不为null-> null)?也许更改表? 问题答案:
问题内容: 我正在尝试使用Python脚本更改目录,但出现错误。 python代码: 我收到此错误: 错误是什么意思,我在做什么错,如何在python子进程中更改目录? 问题答案: 没有(模拟外壳程序) 除非通过以下方式进行更改,否则无法更改目录: 因此,问题不在于路径不存在,而是在Python的仿真终端中作为选项不存在。直接传递到实际的外壳即可。但是请注意,是有风险的,从来没有,除非你需要..用
问题内容: 我想知道Java中是否有特殊原因总是使用“ ”而不是“ ”来定义类型参数的界限。 例: 被禁止但是 是正确的。是什么原因呢? 问题答案: 在类“实现”还是“扩展”之间,通用约束语言没有语义差异。约束可能性是“扩展”和“超级”-也就是说,该类是可分配给其他类的对象(扩展),还是该类可从该类分配(超级)。
问题内容: 编辑:当我说“ SQL Server”时,我实际上是在谈论Management Studio。 抱歉,这令人困惑。 哦,我讨厌这种事情发生。昨天我在使用SQL Server,并尝试使用PIVOT命令来弄清楚它是如何工作的。因此,我创建了一个包含四列的新表,第一列的前几行将具有相同的值。 我在第一行,第一列中添加了“ value1”,然后按回车键–因为还没有添加任何键或约束,它使我可以向
我正在尝试导出可运行的文件,但每次我这么做时,它都会说,“VM参数将不是可运行jar的一部分。在启动jar时,可以在命令行上传递参数。” 有人知道怎么修吗?