我试图让hist
(HistoryPanel extends JPanel)成为JScrollPane的视口,histScroll
。问题是水平滚动条不会显示出来,除非我强迫它显示滚动条策略(在下面的代码中),即使我强制它,也无处滚动。问题是HistoryPanel的大小拒绝水平增加。我尝试了不同的方式来设置hist
的大小,但它仍然保持水平固定大小。但是,垂直方向,它工作得很好。我不明白问题是什么。JScrollPane视口大小
public SuperPanel(GoPanel panel)
{
super(new BorderLayout());
setFocusable(false);
score = new ScorePanel();
go = panel;
go.scorePanel = score;
score.setPreferredSize(new Dimension(panel.getWidth(), 20));
hist = new HistoryPanel(go);
hist.setPreferredSize(new Dimension(panel.getWidth()*20, 100*5));
//hist.setMinimumSize(new Dimension(panel.getWidth()*20, 100*5));
//hist.setSize(new Dimension(panel.getWidth()*20, 100*5));
go.histPanel = hist;
histScroll = new JScrollPane(hist, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
histScroll.setPreferredSize(new Dimension(panel.getWidth(), 100));
add(score, "North");
add(panel, "Center");
add(histScroll, "South");
}
我可以向下滚动所有我想要的,但我无法滚动到右侧。这是一个大问题,因为它切断了一些图像,在这个程序中,水平滚动实际上比垂直滚动更重要。
发布链接至您的图像。 – alex2410
panel.getWidth()的值是什么? – wxyz
[这是截图](http://i.imgur.com/cCEx8LI.png) – iamstickfigure