- 先前的线程中提供了一个解决方案,可以将形状作为边框:使用Java创建圆角Swing JButton
- 但是形状外部区域不能被点击
- 甚至父类(JButton)也没有绘制形状外部区域
有没有一种简单的方法可以在“普通”Swing中完成此操作(不使用任何第三方库)?否则,是否有一个好的免费(当然最好是开源的)第三方库来完成这个任务?
例如,想象一个红色的圆球:我可以给用户的最佳交互是不能在外部区域点击,特别是如果球非常大。
谢谢您提前
(我考虑过使用Java2D从头编写组件,并使用Shape contains()方法来检查点击是否正确。但我会遇到两个主要问题:
为形状提供按下的外观,就像JButton所做的那样 =>正如下面有人指出的那样,如果我使用两个不同的绘图/图像,这并不是最困难的部分
处理事件(ActionListeners)就像JButton所做的那样 =>如果我从JComponent继承,最困难的部分将是在我们没有单击正确区域时拒绝(返回)处理=>如何检测鼠标点击点和区域之间的可能交集是最好的方法?)