2011-04-23 16 views

risposta

28
JViewport viewport = scrollPane.getViewport(); 
JEditorPane editorPane = (JEditorPane)viewport.getView(); 
+1

outch ... stava per postare: "naturalmente getViewportView" ma quel metodo inaspettatamente non esiste, una di quelle pazzesche asimmetrie ;-) – kleopatra

+0

un modo più breve: JEditorPane editorPane = (JEditorPane) scrollPane.getViewport.getView(); – Rubinum

5

Un modo:

JViewport viewport = scrollPane.getViewport(); 
Component[] components = viewport.getComponents(); 

anche se si può solo avere un campo di classe che contiene un riferimento al riquadro dell'editor e ottenere più facilmente in questo modo.

Modifica: come per Jeanette e Rob: il modo migliore per ottenere il componente figlio singolo tenuto dal viewport è con il suo metodo getView().

La mia risposta iniziale mi ricorda una citazione da H.L. Mencken:

"Per ogni problema complesso c'è una soluzione che sia conciso, chiaro, semplice, e sbagliato."

+2

JViewport ha al massimo un solo bambino, ha API per accedere a tale singolo bambino da GetView() (potrebbe restituire null se nessun bambino). Quindi non sono d'accordo con @Boro sulla concisione ;-) – kleopatra

+0

@kleopatra: grazie e Rob per la correzione! :) –

+0

@kleopatra grazie per la correzione. Buon punto – Boro