【问题标题】:Fixing a swing component's height within a Box layout在 Box 布局中固定摆动组件的高度
【发布时间】:2009-05-26 10:29:08
【问题描述】:

早上好,

感谢 javax.swing.Box 类,我正在制作一个 GUI

面板内部:
JLabel
JTable 固定高度
JLabel
自动高度

的JTable

我尝试了所有方法来修复第一个 JTable 高度,但没有任何成功。
我为上述行的每个组件专用一个 Box.createHorizo​​ntalBox(),然后将它们添加到 Box.createVerticalBox()。
我没有得到第一个结果,而是得到了一个 JTable 都有自动高度的布局,我希望第一个 JTable 有一个固定的高度......

感谢您的任何回答,

干杯

【问题讨论】:

    标签: java swing fixed


    【解决方案1】:

    我找到了解决方案,我不应该用这么愚蠢的问题惹恼你:
    对于我创建的每个水平框,我添加了一个 10 像素的水平支柱来显示一种填充。那些支柱是行中的第一个,它被自动作为盒子布局构建的 “高度参考”,但我是 awt/swing 布局的新手,所以我可能会误会这样说。

    我移除了这些支柱并插入了一个包含 10 像素水平支柱的垂直框。它完成了这项工作。

    无论如何,感谢 Markus 和 Michael 的宝贵时间,当我的老板让我有时间时,我会深入研究 sun 的教程

    干杯

    【讨论】:

      【解决方案2】:

      例如,您可以通过调用来更改行高

      TableColumn column = table.getColumnModel().getColumn(0);
          column.setPreferredWidth(150);
          //set all rows height 
          table.setRowHeight(20);
          //set specific row height
          table.setRowHeight(2,50);
      

      您可以通过调用更新的表大小

      setPreferredSize(Dimension preferredSize)
      

      您还必须决定面板应该采用哪种布局。布局了吗?

      【讨论】:

        【解决方案3】:

        向我们展示实际代码如何?

        听起来您没有正确使用布局管理器。您可能应该使用 BorderLayout,其“自动”表格位于其 CENTER 位置,其余位于 NORTH 位置的第二个面板内,第二个面板使用 Boxlayout 或 FlowLayout。

        Sun 有一个很好的tutorial 使用布局管理器,这可能对您有很大帮助。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-23
          • 1970-01-01
          • 1970-01-01
          • 2012-08-14
          • 1970-01-01
          相关资源
          最近更新 更多