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);
}
为什么我不能用一种方法同时做这两件事呢?感谢您的反馈
发布于 2014-05-20 03:43:01
JFrame的默认布局管理器是BorderLayout
。使用add(...)方法,则该组件将添加到BorderLayout
的CENTER
中。但是,只能将单个构件添加到中心,因此仅显示最后添加的构件。
尝试如下所示:
JPanel panel = new JPanel();
panel.add(a);
panel.add(b);
frame.add(panel);
默认情况下,JPanel使用FlowLayout
,因此组件现在应该水平显示。
如果这不是您想要的布局,请阅读Using Layout Managers上的Swing教程中的一节,了解更多信息和示例。
发布于 2014-05-20 03:22:41
可能b在a的顶部。尝试颠倒加法的顺序,或者使用调试器逐行执行。
https://stackoverflow.com/questions/23745537
复制相似问题