2011-04-23 11 views
14

JScrollPaneJEditorPaneがある場合、どのようにスクロールペインからエディタを取得できますか?JScrollPaneからコンポーネントを取得する

私はscrollPane.getComponents()を試しましたが、エディタはリストにありませんでした。

答えて

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

outch ...投稿されようとしていた: "自然にgetViewportView"しかし、そのメソッドが予期せず存在しない、それらの狂ったasymetriesの1つ;-) – kleopatra

+0

短い方法:JEditorPane editorPane =(JEditorPane)scrollPane.getViewport.getView(); – Rubinum

5

一つの方法:

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

あなたは自分のエディタペインへの参照を保持しているクラスのフィールドを持ち、より簡単にそのようにそれを得ることができるが。

編集:JeanetteおよびRob:ビューポートで保持される単一の子コンポーネントを取得する最適な方法は、getView()メソッドです。

私の最初の答えはH.L.メンケンからの引用を思い出させる:「、簡潔明瞭な、シンプル、そして間違っている解決策があるすべての複雑な問題については、」

+2

JViewportのは、せいぜい単一の子供を持って、それは)getViewメソッド(でその単一の子にアクセスするためのAPIを持っている(なし子場合はnullを返す可能性があります)。だから@Boroに簡潔さについては同意しない;-) – kleopatra

+0

@kleopatra:訂正のためにRobに感謝します! :) –

+0

@kleopatraは訂正してくれてありがとう。いい視点ね。 – Boro

関連する問題