从JScrollPane获取组件

Tim*_*eus 16 java swing

如果有JEditorPanea JScrollPane,你如何从滚动窗格中获取编辑器?

我试过scrollPane.getComponents()但编辑器不在列表中.

cam*_*ckr 32

JViewport viewport = scrollPane.getViewport(); 
JEditorPane editorPane = (JEditorPane)viewport.getView(); 
Run Code Online (Sandbox Code Playgroud)


Hov*_*els 5

单程:

JViewport viewport = scrollPane.getViewport();
Component[] components = viewport.getComponents();
Run Code Online (Sandbox Code Playgroud)

虽然你可以只有一个类字段来保存对编辑器窗格的引用,并以这种方式更容易地获得它.

编辑:根据Jeanette和Rob:视口保持单个子组件的最佳方法是使用其getView()方法.

我最初的回答让我想起HL Mencken的一句话:

"对于每个复杂的问题,都有一个简洁,清晰,简单和错误的解决方案."

  • JViewport最多只有一个子节点,它有api通过getView()访问该单个子节点(如果没有子节点,则可能返回null).所以不同意@Boro简明扼要;-) (2认同)