public static void createAI()
{
AI a = new AI(10,10,15,15);
frame.add(a);
AI b = new AI(100,100,15,15);
frame.add(b);
}
这只显示b;然而这会打印出 a.
public static void createAI()
{
AI a = new AI(10,10,15,15);
frame.add(a);
}
为什么我不能用一种方法同时完成这两项工作? 感谢您的反馈
最佳答案
JFrame 的默认布局管理器是 BorderLayout
。当您使用 add(...) 方法而不指定约束时,组件将添加到 BorderLayout
的 CENTER
中。但是,只能将单个组件添加到 CENTER,因此仅显示最后添加的组件。
尝试如下:
JPanel panel = new JPanel();
panel.add(a);
panel.add(b);
frame.add(panel);
JPanel 默认使用 FlowLayout
,因此现在组件应该水平显示。
如果这不是您想要的布局,请阅读 Swing 教程中关于 Using Layout Managers 的部分。了解更多信息和示例。
关于java - 我的输出在JAVA中只打印一个矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23745537/