首页 > 解决方案 > 如何在 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 部分。

标签: javaswingjframejpaneljlabel

解决方案


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

JFrame frame = new JFrame();

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

JPanel panel = new JPanel();

然后在jpanel中添加你的jlabel和东西,然后就是你调用你的jframe的时候。

例子

frame.add(panel);

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


推荐阅读