如何在 Swing 中绘制布局单元格及其边缘?

How to draw cells of layouts and their edges in Swing?

在 Swing(也是 AWT)中,LayoutManagers 确定 Components 在 Container 中的大小和位置,而不绘制边缘和线条...

对于某些教育目标,如何划定这些界线?(例如覆盖 ContainerpaintComponents() class 等等...)

一个解决方案是根据每个布局的规则计算一切以获得坐标,但是有没有办法使用布局本身来做到这一点?

如果您希望所有组件都有边框,则可以使用循环。以下方法将为 JFrame 的内容窗格中的所有 Swing 组件(实际上是 JComponents)绘制边框:

Container cont = frame.getContentPane();

Component[] components = cont.getComponents();
List<JComponent> list = new ArrayList<>();
for (Component comp : components) {
    if (comp instanceof JComponent) {
        list.add((JComponent) comp);
    }
}
for (JComponent jComponent : list) {
    jComponent.setBorder(BorderFactory.createLineBorder(Color.black,2));
}

这是你得到的(忽略菜单栏,它来自上一个问题):