JScrollPanel
ビューの幅を制限するにはどうすればよいですか? いずれにせよ、水平スクロールを発生させたくありません。私は自分で供給しようとしましJViewport
たが、それはあまり役に立ちません。
private static class WidthRestrictingViewport extends JViewport {
private Container contents;
public WidthRestrictingViewport(final Container cnts) {
contents = cnts;
}
@Override
public Dimension getPreferredSize() {
if (getParent() instanceof JScrollPane) {
JScrollPane sp = (JScrollPane) getParent();
return new Dimension(sp.getWidth(), contents.getHeight());
}
return super.getPreferredSize();
}
@Override
public Dimension getMaximumSize() {
return getPreferredSize();
}
}
そして、作成するコードJScrollPane
Container fpdp = ....
JScrollPane sp = new JScrollPane();
sp.setViewport(new WidthRestrictingViewport(fpdp));
sp.setViewportView(fpdp);
contents
私が提供するインスタンスは最大幅を取りますが、その幅を幅以下にしてJScrollPane
、水平スクロールが発生しないようにします。私は何を間違っていますか?