Wie kann ich die Ansichtsbreite JScrollPanel
einschränken? Ich möchte auf jeden Fall kein horizontales Scrollen. Ich habe versucht, eigene JViewport
zu liefern, aber das hilft nicht viel.einschränken JScrollPane Ansichtsbreite
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();
}
}
Und Code, JScrollPane
Container fpdp = ....
JScrollPane sp = new JScrollPane();
sp.setViewport(new WidthRestrictingViewport(fpdp));
sp.setViewportView(fpdp);
contents
Instanz erstellen, die ich liefern seine maximale Breite nimmt jedoch möchte ich seine Breite nicht mehr als JScrollPane
Breite so horizontales Scrollen wird nicht passieren. Was mache ich falsch?
Ich verstehe die Frage nicht. Was sollte mit dem Inhalt von 'JScrollPane' geschehen, wenn dieser größer ist als die tatsächliche Größe von' JScrollPane'? Einfach abschneiden? In diesem Fall könnten Sie in Betracht ziehen, die Bildlaufleiste unsichtbar zu machen ('JScrollPane # getHorizontalScrollBar # setVisible (false)'); – Robin
@Robin, nicht abgeschnitten. Die Ansichtsbreite verkleinern, um die Fensterbreite zu verschieben. Stellen Sie sich einfach ein Panel mit Rahmenlayout und Inhalt in der Mitte vor. Aber in diesem Fall ist nur die Breite des Inhalts mit der Breite des Panels eingeschränkt und die Höhe des Inhalts kann mit der Bildlaufleiste beliebig erhöht werden. –
Ich glaube nicht, dass es die Verantwortung des 'JViewPort's ist, Einschränkungen in der Ansicht zu machen, was die erreichbare Breite betrifft, das ist mehr die Sicht selbst. Sehen Sie sich die ['Scrolllabe'] (http://docs.oracle.com/javase/7/docs/api/javax/swing/Scrollable.html) Schnittstelle an, insbesondere [' Scrollable # getScrollableTracksViewportWidth'] (http : //docs.oracle.com/javase/7/docs/api/javax/swing/Scrollable.html#getScrollableTracksViewportWidth%28%29) – MadProgrammer