如何在 JButton 上使用 ActionListener 来更改 JPanel 容器内 JLabel 组件的背景?

问题描述

我正在使用 JFrame Gui,但我还没有找到使用事件处理程序 actionlistener 更改 JLabel 背景的方法。主要问题是我有一个 JPanel,里面有 4 个 JLabel。我不确定为什么我不能使用 JPanel 容器内的 JLabel 变量。我尝试为 JLabel 创建一个字段,但是当我尝试使用 .getBackground() 方法时它返回 null。我还尝试使用 for 循环获取 JPanel 的组件,并通过它更改标签。到目前为止什么都没有,希望这个问题有意义,请帮助我理解这一点。

https://i.stack.imgur.com/Hnoj5.png 此图显示了重构方法,该方法具有我的 JPanel 容器及其 ​​4 个 JLabel 组件。

https://i.stack.imgur.com/Gw7Xs.png 此图显示了我的代码的 actionlistener 部分。

解决方法

你为什么不先声明一个jframe?示例

JFrame frame = new JFrame();

然后在此之后创建一个 JPanel。

JPanel panel = new JPanel();

然后在 jpanel 中添加您的 jlabel 和内容,然后就是您调用 jframe 的时候。

示例

frame.add(panel);

我之前有相同的项目,关于我们问题的唯一区别是我忘记使用 JPanel,但我有一个 JFrame。首先创建一个 JFrame。