gpt4 book ai didi

java - 在 Java 中的 JFrame 中按下鼠标时如何更改组件的颜色?

转载 作者:行者123 更新时间:2023-11-29 08:09:23 25 4
gpt4 key购买 nike

我正在使用 java.awt.graphics 库中的矩形在 java 中编写钢琴代码。当鼠标单击 JFrame 上的特定区域时,我使用 mouselistener 播放每个单独按键的声音。

我如何在单击时向面板添加形状,重新绘制,然后在用户释放鼠标时重新绘制键盘回到顶部?

最佳答案

考虑将 JLabel 添加到使用 GridLayout 的 JPanel。为每个 JLabel 提供一个 MouseListener 并在 mousePress/mouseRelease 上交换 ImageIcons 或通过按下和释放更改 JLabel 的背景。如果您采用后一种方法,您需要确保 JLabels opaque 属性设置为 true 以便显示背景颜色。

然后对于黑键,您可以将上面的 JPanel 添加到 JLayeredPane 并在此之上添加另一个 JPanel 以相同的方式保存黑键。

此外,您需要注意在后台线程中“播放”任何音符,例如可以通过 SwingWorker 获得的音符,以免占用 Swing 事件线程并完全卡住您的程序。

关于java - 在 Java 中的 JFrame 中按下鼠标时如何更改组件的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9186572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com