2010-03-03 113 views
0

我想要一个框架,它有9个飞机的红色和蓝色和绿色的颜色,我设置该框架作为borderlayout管理器,但它不显示任何东西。请帮助我。谢谢 (the LightsNPlanesApp是正确的,并且可以正常运行,但因为它不显示任何东西)设置布局管理器

大型机大型机不正确:(只是主要方法)

public static void main(String args[]) { 
    java.awt.EventQueue.invokeLater(new Runnable() { 

     public void run() { 
      MainFrame frame = new MainFrame(); 

      addComponentsToPane(frame.getContentPane()); 

      frame.pack(); 
      frame.setVisible(true); 
     } 

     private void addComponentsToPane(Container pane) { 

      pane.add(new LightsNPlanesApp(), BorderLayout.PAGE_START); 
      pane.add(new LightsNPlanesApp(), BorderLayout.CENTER); 
      pane.add(new LightsNPlanesApp(), BorderLayout.PAGE_END); 

     } 
    }); 
} 
+0

请从您的代码中删除任何不需要重现问题的内容。否则很难帮助你。 – 2010-03-03 19:19:11

+0

什么部分关于创建一个SSCCE给你不明白。您不会编写200行代码来测试像使用布局管理器这样的新概念。你编写一个程序,首先添加1个组件。一旦你明白你尝试添加第二个组件等等。在跑步之前学会走路,并开始聆听过去给出的所有建议。 – camickr 2010-03-03 19:21:20

+0

我只是把LightNplanesApp放在这里以获得更多的信息。这个面板可以正常运行并显示3架飞机,但我不知道为什么主架不正确。所有的东西都可以。因为这个,我把我的面板这里也是。也很抱歉在这里放了很多代码。 – Johanna 2010-03-03 19:21:43

回答

1
add("Center", canvas3D); 

...已经过时了/错,应改为:

add(canvas3D, BorderLayout.CENTER); 
+0

框架不显示任何内容[:-(] 谢谢 – Johanna 2010-03-03 19:45:20

0

您发布的代码是如何编译的?你有没有费力听我关于从简单代码开始的建议?是你的自定义JPanel或所有JPanel的问题?

为什么不尝试添加3个不同的背景颜色的JPanel,并查看它是否可以首先使用。当然,如果不行,但一旦你发现了这个问题,那么也许你可以在你的其他班上使用同样的解决方案。

当然,因为你还没有发布一个合适的SSCCE,我只是猜测这就是为什么我没有给你我认为解决方案是彻底的。如果您要猜测导致问题的代码是什么样的,那么您还需要根据提供的提示来猜测解决方案。再次,SSCCE并不意味着您包含自定义面板中的完整代码,这意味着您可以发布简单的代码来模拟问题。