java - 如何在 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。
推荐阅读
- ms-access - 如何在从第一个表中删除数据时将数据从一个表附加到另一个表
- excel - ADODB.Connection & ADODB.Recordset - 用户定义类型未定义
- wordpress - Wordpress:我在 wp-content/themes/mytheme/function.php 中自动添加了一个代码
- java - 单击 CalendarView 中的日期后显示文本
- firebase - 在应用程序处于后台/终止时处理推送通知 (FCM) - Android
- r - 将大量列表转换为数据框中的变量
- reactjs - 在 react 中使用 Link 不会重新渲染组件
- ios - 尝试从 DynamoDB (Swift) 读取时出现 DynamoDBObjectModel 错误
- autodesk-forge - Autodesk Forge:设置全屏模式
- javascript - 如何更改 froala 编辑器的默认宽度?