使JScrollPane行标题设置为JPanel高度

时间:2016-04-17 20:24:23

标签: java jpanel jscrollpane

我有一个JPanel hoursPanel,其中包含不断变化的Swing元素。我在此面板中添加了一个JScrollPane,以及一个显示从0:00到23:00的小时数的rowHeader。 (这是RowHeaderPanel对象,一个简单的JLabel列表)

我的问题是,除非hoursPanel有足够数量的元素,否则面板不会显示整个RowHeader,即使JScrollPane设置为始终可见。我已经尝试将hoursPanel的高度设置为scrollPane,rowHeaderViewport和rowHeaderPanel,但它们都具有高度值0。

如何更改此设置,以便即使hoursPanel为空,用户也始终可以向下滚动到底部的rowHeader标签(23:00)?

public class Example() extends JFrame {

public Example() {
    super();

    hoursPanel = new JPanel(new GridLayout(1, 7));
    scrollPane = new JScrollPane(hoursPanel);

    rowHeaderViewport = new JViewport();
    RowHeaderPanel rowHeaderPanel = new RowHeaderPanel();
    rowHeaderViewport.setView(rowHeaderPanel);
    scrollPane.setRowHeader(rowHeaderViewport);


    containerPanel.add(scrollPane, BorderLayout.CENTER);
    }

}

以下是日历的图像,如图所示,行仅显示14:00,scrollPane不会延伸到rowHeaderPanel的高度。

Calendar

0 个答案:

没有答案