java - 在运行时在面板中添加面板时我无法设置位置

标签 java swing jpanel draw layout-manager

我在使用 Java 及其 swing 组件时遇到了很多困难,我必须说,当我使用 C# 编程时,这要容易得多,而且我有点受困于这段代码。

我想做的是在另一个面板 上添加一些面板。 这是为了向用户展示他加入的项目需要完成的任务。

On the left you see the panel, and i want to add more panels to it.

我在 Gui 的右侧创建了一个面板,我想在运行时向它添加更多面板。 我设法给它添加了一个面板,但它有一些奇怪的行为。

enter image description here

蓝色面板是我在运行时使用此代码添加的新创建的面板。

  JPanel pnl = new JPanel();
  lpane.setBackground(Color.red);
  lpane.setLayout(new BorderLayout());
  pnl.setBounds(0, 0, 20, 100);
  pnl.setOpaque(true);
  pnl.setBackground(Color.BLUE);
  lpane.add(pnl);
  lpane.validate();

这只是一个测试,这就是代码不包含其余面板的 for 循环等的原因。 如您所见,我正在使用 BorderLayout 因为我在互联网上找到了它,并且因为没有 BorderLayout 它不会绘制任何东西。 此外,当我尝试将 BorderLayout 设置为 .NORTH 或 .STARTPAGE 时,它开始在面板上方绘制,但我仍然无法设置面板的任何位置?

有人知道为什么我不能设置任何位置或宽度和高度吗?

最佳答案

  • BorderLayout 实现了 5. 个用于放置 JComponents 的区域,

  • 最后添加的JComponent到具体区域是可见的使用BorderLayout

  • 使用(pre_implemented in JPanel)FlowLayout,接受来自 JComponents 的 PreferredSize

  • GridLayout 用于在屏幕上具有相同大小的 child

  • 一些规则 How Swing LayoutManager works

关于java - 在运行时在面板中添加面板时我无法设置位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10846710/

相关文章:

java - 从 Android 访问基于 SOAP 的 Web 服务时出现 ClassCastException

java - 为什么 JComboBox 在构建时需要项目 -1?

Java 将 Swing 表存储在 Arraylist 中

java - 在 JScrollPane 内的 JPanel 上绘图

java - 将 JPanel 保存为 .jpg/.png 图像

java - 用于 Java 或替代二进制差异格式的 VCDIFF

java - 你如何使用 Guice 在 Android Activity 中注入(inject)一些接口(interface)的实现

java - 如何将 Icon 放置在 JPanel 的顶部和底部

java - 如何创建两个同时互相引用的Ebean实体?

java - 如何在 JFrame 关闭后显示另一个 JFrame?