JScrollPane.setviewportview与JScrollPane.add之间的区别

E m*_*mad 4 java swing jtable jscrollpane

我今天面对这个新事物,我不知道为什么.例如,当我想在面板中显示某些内容时,我只需将其添加到面板中; 但为什么我不能直接添加表格滚动窗格,为什么我必须调用该setviewportview()方法?是什么add()方法做的又是什么setViewProtView()呢?

Mad*_*mer 17

基本上,你不应该使用JScrollPane#add.

JScrollPane有一个组件已经附加到它,a JViewport,这是JScrollPane用于显示添加到视图端口的任何组件的用途.

在此输入图像描述

setViewportView 是一种方便的方法 JScrollPane#getViewport#setView

基本概念归结为这样的事实:从滚动窗格的角度来看,它只会显示单个组件,因此add实际上对它没有任何意义.该方法是从JComponent- > 扩展的结果Container