Se c'è unin un JScrollPane
, come si può ottenere l'editor dallo scrollpane?Ottieni componente da un JScrollPane
Ho provato scrollPane.getComponents()
ma l'editor non era nella lista.
Se c'è unin un JScrollPane
, come si può ottenere l'editor dallo scrollpane?Ottieni componente da un JScrollPane
Ho provato scrollPane.getComponents()
ma l'editor non era nella lista.
JViewport viewport = scrollPane.getViewport();
JEditorPane editorPane = (JEditorPane)viewport.getView();
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."
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
@kleopatra: grazie e Rob per la correzione! :) –
@kleopatra grazie per la correzione. Buon punto – Boro
outch ... stava per postare: "naturalmente getViewportView" ma quel metodo inaspettatamente non esiste, una di quelle pazzesche asimmetrie ;-) – kleopatra
un modo più breve: JEditorPane editorPane = (JEditorPane) scrollPane.getViewport.getView(); – Rubinum