我正在尝试制作钢琴,每个不同的键都有精美的图像。
我想要一种动态的方法来将键添加到正确的位置。现在,对于白色键,这非常简单,我只使用FlowLayout,它们的位置就很好。但是对于黑键,我想不出一种适当的动态方式来正确地将它们添加到白键之间的空白处。
原因是白键的底部比其顶部宽。 黑键之间的距离也不是固定的,因键而异。
白键的底部宽度始终与顶部宽度相同。因此,我的实现方式是在顶部和底部切开白色键,并使用带有FlowLayout的JPanel,然后将这两个面板放在另一个面板的下面。这种方法可行,但我认为这并不是最佳选择,因为添加KeyListeners最终只需要为一个Key需要两个。
有没有更好的方法来添加黑键?