【发布时间】:2011-04-20 14:33:10
【问题描述】:
我正在尝试创建一个类似于 Microsoft Word 中的符号对话框的 JDialog,您可以通过从 插入 菜单中选择 Symbol... 来获得该对话框。基本上,它是一个 n x m(n 和 m 直到运行时才知道)小按钮网格。我有一个使用 GridLayout 很好地工作的第一个版本。问题是当您调整对话框的大小时(并且要求您应该能够调整它的大小),按钮的大小会发生变化。我需要按钮的大小保持不变。
但我希望更改包含按钮的网格的尺寸。例如,如果对话框变宽,但高度保持不变,则行数应该减少,而列数会增加。
我想了几种方法来解决这个问题:
- 调整对话框大小后,创建一个新的 GridLayout 并用按钮重新填充它。我打算试试这个,看看效果如何,但这似乎是一种笨拙的做法。
- 使用其他类型的布局,例如 FlowLayout。我对此进行了尝试,但它将所有 n x m 按钮放在一行中。我不想使用水平滚动条,按钮从右边缘跑了。无论如何,它应该是一个二维的按钮网格。
解决这个布局问题的最佳方法是什么?
【问题讨论】:
-
如何为持有按钮的 JPanel 使用 gridlayout,然后将此 JPanel 嵌套在另一个 JPanel 中,该 JPanel 使用 FlowLayout 或其他不调整持有按钮的 JPanel 大小的布局。
-
这其实是MByD贴出来的代码。尽管它建议使用 BoxLayout,但该演示确实使用了具有默认布局的 JPanel,即 FlowLayout。
标签: java swing layout-manager grid-layout flowlayout