Come posso limitare la larghezza di visualizzazione JScrollPanel
? Non voglio che lo scroll orizzontale accada in ogni caso. Ho provato a fornire il proprio JViewport
ma questo non aiuta molto.restringi JScrollPane larghezza vista
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();
}
}
E il codice che creano JScrollPane
Container fpdp = ....
JScrollPane sp = new JScrollPane();
sp.setViewport(new WidthRestrictingViewport(fpdp));
sp.setViewportView(fpdp);
contents
esempio che io fornisco prende la sua larghezza massima, però voglio la sua larghezza di essere non più di JScrollPane
larghezza scorrimento orizzontale in modo da non succederà. Che cosa sto facendo di sbagliato?
Non capisco la domanda. Cosa dovrebbe succedere con il contenuto di 'JScrollPane' quando è più largo della dimensione effettiva di' JScrollPane'. Basta tagliare? In tal caso, potresti considerare di rendere invisibile la barra di scorrimento ('JScrollPane # getHorizontalScrollBar # setVisible (false)'); – Robin
@Robin, Non tagliato. Riduci larghezza di visualizzazione per scorrere la larghezza del riquadro. Immagina un pannello con il layout dei bordi e il contenuto posizionato al centro. Ma in questo caso solo la larghezza del contenuto è limitata dalla larghezza del pannello e l'altezza del contenuto può crescere come è necessario (con l'aggiunta della barra di scorrimento). –
Non penso che sia responsabilità di 'JViewPort' porre restrizioni sulla sua vista in merito alla larghezza che può raggiungere, questo è più sulla vista stessa. Dai un'occhiata all'interfaccia ['Scrollabe'] (http://docs.oracle.com/javase/7/docs/api/javax/swing/Scrollable.html), in particolare [' Scrollable # getScrollableTracksViewportWidth'] (http : //docs.oracle.com/javase/7/docs/api/javax/swing/Scrollable.html#getScrollableTracksViewportWidth%28%29) – MadProgrammer