猿问

添加的 JPanel 仅在从其他方法添加时才显示?

我正在尝试创建一个首先添加 JPanel 行的程序。添加 JPanel 后,您可以通过单击“添加水平”并指定应添加正方形的行索引(从 0 开始)来添加正方形。

我正在尝试JPanel使用已添加的这些方块之一来添加我的。但是,这个第一个方块没有出现。当我添加另一个正方形时,就好像该正方形在那里,但只是不可见。

您可以在所附图像中看到这一点的演示,其中索引 2 和索引 3 的第一个正方形在没有JLabel添加的情况下根本不可见。

如何修改我的代码,以便在JButton单击“添加垂直”后立即显示第一个方块?


米琪卡哇伊
浏览 100回答 1
1回答

长风秋雁

eventPanel.setPreferredSize( new Dimension(50, newPanel.getHeight() ) );创建组件时,组件的大小为 (0, 0)。因此,您将 eventPanel 的首选大小设置为 (50, 0),这意味着添加的组件不会被看到,因为面板的高度为 0。您只需要mainPanel 上的revalidate()and 。repaint()这将导致布局管理器被调用,并且 mainPanel 的所有子组件都将被重新绘制。此外,也不需要 eventPanel。您可以直接将标签添加到 newPanel。你只需要确保你使用:label.setOpaque(true);所以标签的背景将被绘制。当您使用标签时,无需设置最大/最小尺寸,因为它们等于首选尺寸。
随时随地看视频慕课网APP

相关分类

Java
我要回答