使用 JLabel 将背景图像添加到 JFrame

Adding a background image to JFrame using JLabel

我使用 JLabel 向 JFrame 添加了背景图像。但是面板中还有其他 JLabel 添加到特定的 JFrame。在整个 JFrame 中添加此背景图像后,其他 JLabel 将不可见。我如何让它们可见?

几个选项:

  1. 使 JLabel 不透明并使其成为 contentPane,为其提供合适的布局,为其提供合适的 getPreferredSize() 覆盖,这在您的问题上下文中有意义(JLabel 自己对此方法的覆盖不会适合您,因为它取决于标签包含的文本和图标,而不是添加的组件)。
  2. 然后将其他组件添加到它 -- 到 JLabel。

或者:

  1. 使用 JPanel 作为背景图片显示器
  2. 在其 paintComponent(...) 方法覆盖中显示图像。
  3. 给它合适的布局管理器,如果需要,getPreferredSize() 覆盖。

另外:

  • 注意将一些添加的组件(例如其他 JPanel)设置为非不透明。