问题描述
我正在使用 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。