总的问题是——当 Java 将组件(按钮、菜单项等)对象添加到 JFrame、JPanel、JMenu 之类的东西时,它们在哪里存储?在挖掘文档时,我看到一些内容说它们存储在一个列表中,但我仍在尝试通过挖掘 Oracle 的文档来查找有关该实现的特定信息。已经理解它的人可以帮助我理解吗?
在浏览 Oracle 的 Java 教程时,我注意到一个标识符被重用于创建相同类型的对象。例如,这会创建两个单独的按钮:
JPanel buttonPnale = new JPanel("Making some buttons");
JButton buttonMaker;
buttonMaker = new JButton("Left button", blueBurstIcon);
buttonPanel.add(buttonMaker);
buttonMaker = new JButton("Right button", orangeBurstIcon);
buttonPanel.add(buttonMaker);
通常我会认为我需要这样做:
JButton buttonOne = new JButton("Left button", blueBurstIcon);
JButton buttonTwo = new JButton("Right button", orangeBurstIcon);
为每个单独的对象创建一个单独的标识符。
显然,第一段代码中的对象被保存在某个地方,我只是想找出在哪里。一定是当我调用 .add 时,它们被复制了——但是它们被复制到了哪里?如果它们被添加到 JPanel,它们是否被复制到 JPanel 包含的数据结构中?还是添加到 JPanel 的 JFrame 的一部分中的数据结构?