【问题标题】:How can I use an ActionListener on a JButton to change the background of a JLabel component inside of a JPanel container?如何在 JButton 上使用 ActionListener 来更改 JPanel 容器内的 JLabel 组件的背景?
【发布时间】:2021-06-05 09:42:50
【问题描述】:

我正在使用 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 部分。

【问题讨论】:

标签: java swing jframe jpanel jlabel


【解决方案1】:

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

JFrame frame = new JFrame();

然后你创建一个JPanel。

JPanel panel = new JPanel();

然后在 jpanel 中添加你的 jlabel 和东西,然后你就可以调用你的 jframe。

例子

frame.add(panel);

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

【讨论】:

  • 感谢您的建议,但我发现我已经两次声明了我的 JLabel。所以我在 createMainPanel 方法中声明了它,并且在全局范围内声明了它。一旦我修复了一切正常。
猜你喜欢
  • 2014-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多