Java gridLayout中的拉伸按钮
各位,我对Java有一些问题,我创建了一个有五行一列的面板,我在其中一行添加了按钮,最后我将这个面板添加到了框架中,我收到了一个按钮,它被拉伸到了整个框架,我可以减小按钮的大小吗,我使用了Java gridLayout中的拉伸按钮,java,swing,jbutton,layout-manager,gridbaglayout,Java,Swing,Jbutton,Layout Manager,Gridbaglayout,各位,我对Java有一些问题,我创建了一个有五行一列的面板,我在其中一行添加了按钮,最后我将这个面板添加到了框架中,我收到了一个按钮,它被拉伸到了整个框架,我可以减小按钮的大小吗,我使用了 myButton.setSize(10,10); 但它似乎不起作用,我也使用 frame.pack(); 可能是问题,请提前谢谢您应该避免自己设置尺码。您应该选择一个合适的LayoutManager,为您完成这项工作 (除非明确执行setLayout(null)设置的尺寸将被丢弃,当前布局管理器将为组件分
myButton.setSize(10,10);
但它似乎不起作用,我也使用
frame.pack();
可能是问题,请提前谢谢您应该避免自己设置尺码。您应该选择一个合适的
LayoutManager
,为您完成这项工作
(除非明确执行setLayout(null)
设置的尺寸将被丢弃,当前布局管理器将为组件分配新尺寸。)
您说您使用的是GridLayout
。这种布局相当“不灵活”,如果您想享受GridLayout
的好处,但更具灵活性,可以尝试一下
如果你找不到一个适合你需要的布局管理器,不要害怕写你自己的。(这是五种相对容易实现的方法。)
如果您发布当前应用程序的屏幕截图,并解释您希望它看起来如何,我们将能够进一步帮助您
一些有用的链接
GridLayout
)时,调用setSize()
通常不起作用,因为布局管理器最终决定如何在容器中调整和放置每个组件的大小
您可以调用setPreferredSize()
,setMaximumSize()
和/或setMinimumSize()
。根据使用中的布局管理器,其中一个或多个请求(因为它们实际上就是这样)将得到满足。当您调用frame.pack()
时,它将尝试将容器(和子容器)中的所有内容调整为其首选大小
因此,在您的情况下,调用
myButton.setPreferredSize(10,10)代码>可能会起作用。但是,如果容器更改大小,它仍将调整大小。如果您不想这样,我可以发布其他解决方案。当aloobe似乎为您提供了更通用的解决方案时。我认为直接的解决方案是将按钮添加到JPanel,将Layoutmanager设置为类似GridLayout的布局,或者如果您发现另一个更适合您的布局,则设置另一个Layoutmanager
并将此面板添加到原始面板中,以代替按钮。您可以发布整个gui创建代码吗?我的术语是“嵌套布局”。我无法想象使用任何一种布局创建一个可行的GUI(甚至不是严重的BodyLayout,哦,对不起-GridBagLayout)。