java - 非矩形 java UserControl

标签 java swing netbeans components controls

  • 在 .NET 中,UserControl 可能由控件组成,它可能是表单的一部分或更大的 UserControl 的一部分。可以使用 ToolBox Palette 使用可视化设计器设计用户控件。

  • 我发现 java BeanForm 是 .NET UserControl 的类比。

  • 我可以在 NetBeans 中使用可视化设计器设计 BeanForm

  • 在我的库中,我可以从任何其他库扩展 BeanForm,并且我可以使用 NetBeans 中的可视化设计器设计扩展的 BeanForm。

  • 在我的主项目中,我可以从 Palette 中选择我所有的 BeanForms 到我的框架上。

所以“BeanForm”是“UserControl”的 java 挂件。


在 .Net 中,我可以轻松地将我的 UserControl 塑造成鱼或星星或任何我喜欢的形状 通过简单地设置 this.Region = new Region(graphicsPath)。


我知道 Java 不像 C# 那么简单,我发现 Java 示例部分描述了必要的步骤但是 我没有找到 Shaped non-rectangular BeanForm Sample。


当然,使用新的特殊 mouseClicked(MouseEvent e) 扩展 MouseAdapter——正如许多示例所建议的那样——还不够——这只是第一步。

  • 他们是否都忘记了 Dragged-Event、Focus 事件、Mouse-Entered 事件、Mouse-Up 事件和 Mouse-Leave 事件以及所有其他典型的 JComponent 事件??? -这样的组件肯定不会表现像真正的Shaped JComponent应该表现的那样。

请给我一个 OvalComponent-BeanForm 的示例,它可以从 Palette 中提取到我的框架上,并且表现得像一个 REAL Shaped JComponent

它应该涵盖所有必要的鼠标事件和所有必要的 MouseMotion 事件以及所有拖放事件和所有按键事件,以防椭圆形获得焦点或鼠标位于椭圆形上方。

(例如,我应该能够使用 Oval 的鼠标事件并将 Oval 组件扩展为可以在框架内四处移动的 MovingOval 组件 ...)


如果这对您来说工作量太大,那么请概述并描述我必须实现的步骤 - 例如 MouseAdapter、KeyAdapter、DragDropAdapter 或任何必要的东西。

请指点我该怎么做!

非常感谢。

最佳答案

每个 java.awt.Shape 都有一个 contains() 方法,您可以在 MouseListener 中使用它进行 HitTest 鼠标适配器

关于java - 非矩形 java UserControl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13536915/

相关文章:

java - 如何从另一个类调用run方法?

java - classLoader.getResource(filename) 不返回存在的文件(返回空)

Java JFrame 添加带字段的浏览按钮

java - 严重 : Allocate exception for servlet <myservlet-name> java. lang.ClassNotFoundException:<myservlet> 异常

git - Ubuntu + Git + Netbeans 7 - 我们需要在操作系统上安装 Git 吗?

java - 似乎无法将自定义对象写入 Firebase 数据库?

java - AutoValue - 无法在没有参数的情况下调用 public uk.ivanc.archimvp.model.entities.Campaigns()

java - 单击按钮打开时,新 JFrame 以禁用状态打开

java - JMenu 和 JPopupMenu 的 Swing 鼠标单击事件

search - 在 Netbeans 中更快地搜索文件