myButton.setSize(10,10);
但它似乎不起作用,我也使用
frame.pack();
可能是问题,提前谢谢
答案 0 :(得分:3)
您应该避免自己设置尺寸。您应该选择适合您的LayoutManager
。
(除非您明确地setLayout(null)
,否则您设置的尺寸将被丢弃,当前的布局管理器将为组件分配新的尺寸。)
你说你正在使用GridLayout
。这种布局相当“不灵活”,如果你想要GridLayout
的好处但更灵活,你可以尝试GridBagLayout
。
如果您没有找到满足您需求的布局管理器,请不要害怕编写自己的布局管理器。 (这是五种相对简单的实施方法。)
如果您发布当前应用程序的屏幕截图,并说明您希望它的外观,我们将能够为您提供进一步的帮助。
一些有用的链接
答案 1 :(得分:1)
当您使用布局管理器(如GridLayout
)时,对setSize()
的调用通常不起作用,因为布局管理器最终决定如何调整大小并将每个组件放在容器中。
您可以拨打setPreferredSize()
,setMaximumSize()
和/或setMinimumSize()
。根据使用中的布局管理器,这些请求中的一个或多个(因为它们确实是它们)将受到尊重。当您致电frame.pack()
时,它会尝试将容器(和子容器)中的所有内容调整为其首选大小。
因此,在您的情况下,调用myButton.setPreferredSize (10, 10);
可能会有效。但是,如果容器更改大小,它仍将调整大小。如果您不想这样,我可以发布其他解决方案。
答案 2 :(得分:1)
当aloobe似乎有一个更通用的解决方案。我想立即解决方案是将按钮添加到JPanel,将Layoutmanager设置为GridLayout或其他LayoutManager,如果你发现另一个更适合你。
将此面板添加到原始面板,代替按钮。