我有一个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的高度。