【发布时间】:2016-03-25 19:57:59
【问题描述】:
我有一个框架,在这个框架内我有一个带有盒子布局的面板,在这个面板内我还有 4 个面板。
mainFrame = new JFrame("Basket Game");
mainPanel = new JPanel();
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
mainPanel.add(options);
mainPanel.add(pname);
mainPanel.add(info);
mainPanel.add(gamearea);
mainFrame.setContentPane(mainPanel);
mainFrame.pack();
mainFrame.getContentPane().setBackground(Color.LIGHT_GRAY);
mainFrame.setResizable(false);
mainFrame.setVisible(true);
mainFrame.setSize(600,600);
表格如下所示:
前 3 个面板对我来说没问题。但是对于最后一个面板(黑色),我想添加一些具有自定义坐标的组件。但是当我尝试使用自定义坐标添加它们时:
basket.setLocation(500, 500);
gamearea.add(basket);
它直接进入面板的顶部中心(坐标不影响它的位置)
当我将gameareIs 布局设置为null 时,我在面板上看不到我的标签。我想我应该为此做一些额外的事情。我该怎么做?
【问题讨论】:
-
您的主窗口只有 600x600。带有标题栏、选项、玩家名称和信息,y=500 可能位于窗格底部。
-
你了解布局管理器的工作原理吗?您了解布局管理器的职责吗?你了解谁重置 API 与布局管理器交互吗?如果你不这样做,那么 null 布局不是你正在寻找的选择。在几乎所有情况下,当您认为您想要一个空布局时,您可能不想要。在极少数情况下,null 布局可能有用,自定义布局会导致更少的问题和返工
标签: java swing layout-manager boxlayout