0 java swing jtable jscrollpane
我现在正在学习JTable类,我想在JFrame中显示表头.
当我的代码像这样
JScrollPane scrollPane = new JScrollPane(table); //table had been constucted;
Run Code Online (Sandbox Code Playgroud)
一切都是对的; 但
当我的代码像这样
JScrollPane scrollPane = new JScrollPane();
scrollPane.add(table);
Run Code Online (Sandbox Code Playgroud)
当我运行程序时,我在JFrame中看不到任何数据;
我希望通过阅读JScrollPane的源代码并阅读Java SE API文档来找到一些东西,但我没有得到满意的答案.我所知道的是add是继承自Container,而JScorllPane的构造函数有不同的实现.但我不明白为什么.:(
你能帮助我吗 ?非常感谢!
ps:这是StackOverflow上的第一个提问.我是中国学生,英语很差.如果出现问题我请原谅.再次3ks.
构造函数不会将JTable添加到JScrollPane,而是添加到其视口的视图中.
所以这:
JScrollPane scrollpane = new JScrollPane(jTable); // (1)
Run Code Online (Sandbox Code Playgroud)
相当于:
JScrollPane scrollpane = new JScrollPane(); // (2)
scrollpane.setViewportView(jTable); // (3)
Run Code Online (Sandbox Code Playgroud)
请注意,上面第(1)行的构造函数调用不会将JTable添加到JScrollPane组件本身,因为如果它,它将替换其视口,从而使JScrollPane无法运行.而是构造函数将组件添加到其JViewport.