Java Swing 表大小

标签 java swing groovy

我在使用 JTables 时遇到问题。我在一个面板中添加了两个表格,这些表格在一个滚动 Pane 中,但是当应用程序出现时,表格占用的空间总是多于行数,浪费了我的可用空间。

我正在使用 groovy 和 swingbuilder 来创建表格,代码如下:

scrollPane(){
    panel(layout: new MigLayout('wrap 3')) {
        //main title
        label(text: '<html><h1>blah</h1></html>',constraints: 'span 3') //title

        //tables
        def data = [[text: "ABC", combo: "abc"], [text: "DEF", combo: "def"]]
        def items = ['abc', 'def', 'ghi', 'jkl']
        def tableModelListener = { e -> println "${e.firstRow} ${e.column} ${e.type}" } as TableModelListener
        scrollPane(constraints: 'span 3' ) {
            table(id: 'serviceTable') {
                current.setFillsViewportHeight(false)
                tableModel(list: data) {
                    current.addTableModelListener(tableModelListener)
                    propertyColumn(header: 'Text', propertyName: 'text')
                    propertyColumn(header: 'Combo', propertyName: 'combo')
                }
            }
        }
        scrollPane(constraints: 'span 3' ) {
            table(id: 'groupsTable') {
                tableModel(list: data) {
                    current.addTableModelListener(tableModelListener)
                    propertyColumn(header: 'Text2', propertyName: 'text')
                    propertyColumn(header: 'Combo2', propertyName: 'combo')
                }
            }
        }
    }
}

结果如下: Image http://img517.imageshack.us/img517/6508/15181501ym9.jpg

我想要的是根据行数设置表格高度,如果可能的话我希望表格也占据整个宽度。我认为我的问题与父面板有关,但找不到原因。

最佳答案

是的,这是 JTables 的一个已知问题。默认情况下,它显示 20 行,无论实际内容是什么。

如果你想改变你必须使用如下代码:

static public void setTableHeight(JTable table, int rows)
{
    int width = table.getPreferredSize().width; 
    int height = rows * table.getRowHeight(); 
    table.setPreferredScrollableViewportSize(new Dimension(width, height));
}

如果您希望默认显示 5 行,则只需调用 setTableHeight(5);

注意:这是 Java,您可能需要稍微调整一下以适应 Groovy。

这是我的东西described in my blog上个月(第 7 项)。

关于Java Swing 表大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/566004/

相关文章:

java - 基本ScrollBarUI?如何使用它

jenkins - 在 Jenkins 管道中构建期间访问阶段名称

javascript - 对 spring @ResourceMapping 方法进行 react ,未使用相同的请求参数调用

java - 创建 libGDX 小程序

java - 更改 JxBrowser JFrame 中 JButton 大小的问题

java - 如何生成随机的亮色?

intellij-idea - 结合模拟和 stub 时对 Spock 交互的 IntelliJ 警告

java - groovy 脚本 eval(string) 方法的性能问题

java - 分析上下文中的安全点和安全点轮询是什么?

java - 比较器 : How to sort on two parameter when one is instance variable and other is reference in the Same Class