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;然而这打印出一个。
public static void createAI()
{
AI a = new AI(10,10,15,15);
frame.add(a);
}
为什么我不能在一种方法中同时做到这两种方法? 感谢您的反馈
答案 0 :(得分:1)
JFrame的默认布局管理器是BorderLayout
。在不指定约束的情况下使用add(...)方法时,该组件将添加到CENTER
的{{1}}。但是,只有一个组件可以添加到CENTER中,因此只显示添加的最后一个组件。
尝试类似:
BorderLayout
JPanel默认使用JPanel panel = new JPanel();
panel.add(a);
panel.add(b);
frame.add(panel);
,所以现在组件应水平显示。
如果这不是您想要的布局,请阅读Using Layout Managers上的Swing教程中的部分,以获取更多信息和示例。
答案 1 :(得分:0)
可能b在a之上。尝试反转添加序列,或使用调试器逐行执行。