当前位置: 首页 > 面试题库 >

JComponent和ComponentUI委托之间的绑定事件

邹正阳
2023-03-14
问题内容

我已经开始尝试创建普通的MVC
Swing组件。我对M和C没问题,但是V向我抛出了一个我通常无法解决的问题。问题是:控制器是组件的主类(例如MyComponent),并且它扩展了JComponent。视图是从ComponentUI类扩展的ui委托(MyCompanentUI)。委托所做的只是在MyCompanent中添加JTextField并提供MyComponentModel与该字段之间的数据绑定。它工作正常。但是,如何将事件从JTextField绑定到MyComponent?如果用户想要处理某些事件,则可以将侦听器添加到MyComponent,但是将JTextField截获的所有真实事件(鼠标,焦点,键等)添加,用户并不真正知道这些事件。那么有什么正常的方法可以做到这一点,除了捕获事件并手动将其转换为原始组件?还是有另一种创建委托的方式,而我只是做错了?

UPD:

感谢您的回复,垃圾桶。但是我的想法有所不同。我说的是“事件继承”之类的东西,例如“
inheritsPopupMenu”方法。因此,键,焦点或鼠标事件发生在组件上时,它本身不会对其进行处理,而是将其直接传递给父组件。但是这似乎是不可能的,因为我已经注意到JSpinner存在完全相同的问题-
您几乎无法从此组件获得任何事件通知。


问题答案:

如果您正在编写自己的JComponent子类,并且希望允许自定义UI委托,那么我将从Kirill Grouchnikov的“
如何编写自定义Swing组件”开始

如果您正在编写一个包含现有JComponent子类的组合,例如JTextField,请参见
如何利用如何使用键绑定中Action描述的现有实例。是一个例子。您可以从组件的源极(S),或使用这种学习行为的名字@
camickr的文章中所看到的方便实用
按键绑定
__ScrollAction
__



 类似资料:
  • 本文向大家介绍jQuery事件绑定和委托实例,包括了jQuery事件绑定和委托实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery事件绑定和委托。分享给大家供大家参考。具体方法如下: jQuery事件的绑定和委托可以用多种方法实现,on()  、 bind()  、 live()  、 delegate() ,还有one()。   有时我们可能会像下面这样绑定一个事件: 上面的

  • 本文向大家介绍jQuery事件委托之Safari,包括了jQuery事件委托之Safari的使用技巧和注意事项,需要的朋友参考一下 什么是事件委托 事件委托是Jquery中一种事件绑定的方式,不同于常见的事件绑定方式将事件绑定在目标元素上,而是将事件绑定在父级元素上通过事件冒泡来执行绑定函数。 事件委托的原理 事件委托将事件监听绑定在目标元素的父级上,当目标元素响应事件时冒泡到绑定事件的父级上,进

  • 捕获和冒泡允许我们实现一种被称为 事件委托 的强大的事件处理模式。 这个想法是,如果我们有许多以类似方式处理的元素,那么就不必为每个元素分配一个处理程序 —— 而是将单个处理程序放在它们的共同祖先上。 在处理程序中,我们获取 event.target 以查看事件实际发生的位置并进行处理。 让我们看一个示例 —— 反映中国古代哲学的 八卦图。 如下所示:在新窗口中打开 在沙箱中打开 其 HTML 如

  • 本文向大家介绍C#中的委托是什么?事件是不是一种委托?事件和委托的关系。相关面试题,主要包含被问及C#中的委托是什么?事件是不是一种委托?事件和委托的关系。时的应答技巧和注意事项,需要的朋友参考一下 委托可以把一个方法作为参数代入另一个方法。 委托可以理解为指向一个函数的指针。 委托和事件没有可比性,因为委托是类型,事件是对象,下面说的是委托的对象(用委托方式实现的事件)和(标准的event方式实

  • 本文向大家介绍JS 事件绑定、事件监听、事件委托详细介绍,包括了JS 事件绑定、事件监听、事件委托详细介绍的使用技巧和注意事项,需要的朋友参考一下 在JavaScript的学习中,我们经常会遇到JavaScript的事件机制,例如,事件绑定、事件监听、事件委托(事件代理)等。这些名词是什么意思呢,有什么作用呢? 事件绑定 要想让 JavaScript 对用户的操作作出响应,首先要对 DOM 元素绑

  • 主要内容:为什么要使用事件委托,事件委托实现原理,事件委托的优点,总结利用 JS 事件冒泡动态为元素绑定事件的方法称为事件委托(Event Delegation,也称为“事件代理”),是 JavaScript 中最热门的技术之一。 事件委托就是把原本需要绑定在子元素上的事件(onclick、onkeydown 等)委托给它的父元素,让父元素来监听子元素的冒泡事件,并在子元素发生事件冒泡时找到这个子元素。 举个简单的例子,整个宿舍的同学都需要去取快递,一种方法是让他们