JScrollPane的大小不会减少

时间:2011-12-26 18:03:37

标签: swing layout jscrollpane

我用DesignGridLayout作为布局管理器写了一个简单的gui。

我有一个2个JTextFields,在它们下面是一个包含JTextArea的JScrollPane,在它下面我有一个按钮。

在最大化JFrame后,一切都很好地延伸到屏幕上。 当我尝试将Frame恢复为原始大小时,问题就出现了。 JScrollFrame 垂直大小仍然太大,并且没有显示Button,因为它被太大的Jscrollpane所覆盖。  手动调整大小的问题也是一样的。 JScrollPane根据拉伸的大小为它的垂直尺寸设置一个新值。

我尝试从Scrollable接口覆盖getScrollableTracksViewportHeight()方法,但它没有任何影响。另外,我把整个设置都放在了一个Jpanel中,我删除了它,但它仍然是一样的。

任何见解都将不胜感激。

编辑:添加了代码示例。

此代码创建了大部分Gui:

    DesignGridLayout layout = new DesignGridLayout(frame);
    layout.row().grid().empty().add(new JLabel("someText1"), someText1);
    layout.row().grid().empty().add(new JLabel("someText2"), someText2);
    layout.emptyRow();
    layout.row().grid().add(new JSeparator());
    layout.row().grid().empty().add(titleLabel).empty();
    layout.row().grid().add(textarea("",5,6));
    layout.row().grid().empty().add(button).empty();

此代码创建了JScrollPane:

    private JScrollPane textarea(String content, int rows, int columns)
{
    JTextArea textArea = new JTextArea(rows, columns);

    JScrollPane scrollPane = new JScrollPane(textArea);
    return scrollPane;
}

0 个答案:

没有答案