我的输出只在JAVA中打印一个矩形

时间:2014-05-19 19:17:50

标签: java user-interface

 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);
}

为什么我不能在一种方法中同时做到这两种方法? 感谢您的反馈

2 个答案:

答案 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之上。尝试反转添加序列,或使用调试器逐行执行。