gpt4 book ai didi

java - 使用JTable类时,JScrollPane的构造函数和它的add方法有什么区别?

转载 作者:行者123 更新时间:2023-12-01 08:05:00 25 4
gpt4 key购买 nike

我这几天正在学习JTable类,我想在JFrame中显示表头。

当我的代码是这样的

JScrollPane scrollPane = new JScrollPane(table); //table had been constucted;

一切都好;但是

当我的代码是这样的

JScrollPane scrollPane = new JScrollPane();
scrollPane.add(table);

当我运行程序时,我在JFrame中看不到任何数据;

我希望通过阅读JScrollPane的源代码和Java SE API文档来找到一些东西,但我没有得到满意的答案。我所知道的是 add 是从 Container 继承的,而 JScorllPane 的构造函数有不同的实现。但我不明白为什么。 :(

你能帮我吗?非常感谢!

ps:这是 StackOverflow 上的第一个问题。我是一名中国学生,我的英语很差。如果有什么问题请原谅。又是 3 公里。

最佳答案

构造函数不会将 JTable 添加到 JScrollPane 中,而是添加到其视口(viewport)的 View 中。

所以这个:

JScrollPane scrollpane = new JScrollPane(jTable); // (1)

相当于:

JScrollPane scrollpane = new JScrollPane();  // (2)
scrollpane.setViewportView(jTable); // (3)

因此请注意,上面第 (1) 行的构造函数调用不会将 JTable 添加到 JScrollPane 组件本身,因为如果这样做,它将替换其视口(viewport),从而使 JScrollPane 无法操作。相反,构造函数将组件添加到其 JViewport。

关于java - 使用JTable类时,JScrollPane的构造函数和它的add方法有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22432677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com