I'm trying to have hist (HistoryPanel extends JPanel) be the viewport of the JScrollPane, histScroll. The problem is that the horizontal scroll bar doesn't show up unless I force it to show up with the scrollbar policy (in the code below), and even if I force it to, there's nowhere for it to scroll. The problem is that the size of the HistoryPanel refuses to increase horizontally. I tried different ways of setting the size of hist, but it continues to stay horizontally fixed in size. Vertically, however, it works perfectly fine. I don't understand what the problem is.
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");
}
I can scroll down all I want, but I can't scroll to the right. Which is a big problem because it cuts off some of the image, and in this program, horizontal scrolling is actually a lot more important than vertical scrolling.

 
     
    