【发布时间】:2016-03-18 06:57:42
【问题描述】:
我正在尝试创建一个字符表程序,该程序根据框架的宽度排列 3 个面板。如果框架不是很宽,我希望面板垂直排列,但如果用户选择使框架更宽,我希望面板水平排列。
我还有一个滚动面板,三个面板都排列在上面,所以滚动面板被添加到滚动面板中。
我看过一些帖子说事件监听器可以工作,但其中大部分是用于按钮的,我需要框架大小在布局更改之前通过某个阈值。我看到其他推荐 html 的帖子,我现在认为没有必要。
所以在这张图片中,3 个面板是垂直排列的,并且可以滚动浏览。
scrollPanel.add(leftPanel); //this is the yellow panel that is being added
scrollPanel.add(centerPanel); //this one is farther down
scrollPanel.add(rightPanel); //even farther down
scrollPanel.setBackground(Color.CYAN);
scrollPanel.setLayout(new GridLayout(0, 1)); //so here I would like to have an if statement or event swap the 0 and the 1.
总结:
能否根据 Frame 的大小动态更改 GridLayout?
如何监控帧大小的变化?事件? if 语句?
我能否对 ScrollPane 执行相同操作,根据面板是垂直还是水平,将水平和垂直滚动条设置为从不出现?
【问题讨论】:
-
这是三合一;是的,您可以动态更改任何内容;你试过了吗??
-
我是否使用 if 语句来更改 gridLayout?是更改现有的还是需要创建一个新的?
-
是的,您可以使用 if 语句 - 这是您的代码吗?您是否创建了此代码? - 您可以启动一个新的 GridLayout 或设置行/列,参见 GridLayout 的文档 -
-
是的,我创建了它。我目前将 gridLayout 设置为垂直,因此它垂直组织面板(您只是看不到其他 2 个,因为它位于滚动窗格中)。我不确定如何更改它,以便 gridLayout 水平组织它们或者最好的方法是什么。所以我基本上可以说如果框架比这个宽度更宽,改变布局?然后我删除当前布局并用不同的布局替换它?
标签: java dynamic gridlayoutmanager