首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

JavaSwing_8.1:焦点事件及其监听器 - FocusEvent、FocusListener

低级别事件指示Component已获得或失去输入焦点。 由组件生成此低级别事件(如一个TextField)。 该事件被传递给每一个FocusListener或FocusAdapter注册,以接收使用组件的此类事件对象addFocusListener方法。 ( FocusAdapter对象实现FocusListener接口。)每个此类侦听器对象获取此FocusEvent当事件发生时。 有两个焦点事件级别:持久性和暂时性的。 永久焦点改变事件发生时焦点直接移动从一个组件到另一个,例如通过到requestFocus的(呼叫)或作为用户使用TAB键遍历组件。 当暂时丢失焦点的组件的另一个操作,比如释放Window或拖动滚动条的间接结果一时焦点变化的事件发生。 在这种情况下,原来的聚焦状态将被自动一旦操作完成恢复,或者,对于窗口失活的情况下,当窗口被重新激活。 永久和临时焦点事件使用FOCUS_GAINED和FOCUS_LOST事件id传递; 水平可以使用isTemporary()方法的事件区分开来。 如果未指定的行为将导致的id任何特定的参数FocusEvent实例不是从范围FOCUS_FIRST到FOCUS_LAST

01

HorizontalScrollView 自动滑动「建议收藏」

从事开发Android,坑人的就是设备的差异性,相同的功能在相同的生产厂商不同的版本设备,或者是不同的生产厂商的设备实际效果具有差异性,最近在项目里面用到HorizontalScrollView功能,里面有10个按钮,要把其中第四个按钮移动到最左边,这个功能倒是很好实现,方法也很多,使用ScrollTo一类的函数就可以实现,在其他的手机设备上很好,没有问题,但是在索尼 Sony Erissson这台设备上,点击一个按钮,滚动条会自动滚动到第一个按钮(只有第一次才会出现),验证了各种情况,大概明白可以能是因为焦点问题,所以一点击移动后的按钮,会自动回到第一个按钮处,可能HorizontalScrollView第一个按钮就有焦点,知道焦点问题就好办了,查看HorizontalScrollView的api看见焦点的只有两个函数requestChildFocus和requestChildRectangleOnScreen,我试验了一下,第一个我先使用ScrollTo滑动到中间,然后再使用requestChildFocus让移动的最左边的按钮获取焦点但是没有作用,然后用requestChildRectangleOnScreen这个函数,自己先定义一个Rect,然后调用requestChildRectangleOnScreen调整显示你在Rect设置的焦点位置,最终这个方法是可以解决这个问题。

03
领券