hist
(HistoryPanel extends JPanel) を JScrollPane のビューポートにしようとしていますhistScroll
。問題は、スクロールバー ポリシー (以下のコード) で強制的に表示しない限り、水平スクロール バーが表示されず、強制してもスクロールする場所がないことです。問題は、HistoryPanel のサイズが水平方向に大きくならないことです。のサイズを設定するさまざまな方法を試しましhist
たが、横方向のサイズは固定され続けています。ただし、垂直方向には完全に正常に機能します。何が問題なのかわかりません。
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");
}
下にスクロールすることはできますが、右にスクロールすることはできません。画像の一部が切り取られるため、これは大きな問題です。このプログラムでは、実際には垂直スクロールよりも水平スクロールの方がはるかに重要です。