在.NET中,UserControl可以由控件组成,并且可以是Form的一部分或更大的UserControl的一部分。可以使用工具箱面板使用可视设计器设计UserControl。
我发现Java BeanForm是.NET UserControl的模拟。
我可以在NetBeans中使用可视设计器设计BeanForm
在我的库中,我可以从任何其他库中扩展BeanForm,并且可以使用NetBeans中的可视设计器设计扩展的BeanForm。
在我的主项目中,我可以从面板中选择所有BeanForms到框架上。
因此,“ BeanForm”是“ UserControl”的java挂件。
在.Net中,我可以轻松地将UserControl塑造为一条鱼,一颗星星或任何我喜欢的形状
只需设置this.Region = new Region(graphicsPath)。
我知道Java不像C#那样容易,而且我发现Java示例部分描述了必要的步骤,但
我没有找到形状非矩形的BeanForm示例。
当然,如许多示例所建议的那样,用新的特殊mouseClicked(MouseEvent e)扩展MouseAdapter不够-这只是第一步。
他们是否都忘记了Dragged-Event和Focus事件,Mouse-Entered事件,Mouse-Up事件,Mouse-Leave事件以及所有其他典型的JComponent事件? -这样的组件肯定不会像真正的Shaped JComponent那样运行。
请给我一个OvalComponent-BeanForm的样本,该样本可以从Palette拿到我的框架上,其行为类似于REAL Shaped JComponent
它应该涵盖所有必需的鼠标事件,所有必需的MouseMotion事件以及所有的拖放事件和所有键事件,以防椭圆形成为焦点或鼠标位于椭圆形之上。
(例如,我应该启用椭圆形的鼠标事件并将椭圆形组件扩展为可在框架内移动的MovingOval组件...)
如果这对您来说太麻烦了,请概述并描述我将要执行的步骤-例如MouseAdapter,KeyAdapter,DragDropAdapter或任何必需的步骤。
请指出我该怎么做!
提前谢谢了。
最佳答案
每个java.awt.Shape
都有一个contains()
方法,可用于MouseListener
或Mouseadapter
中的命中测试。