谢 谢 收 藏 http://www.qqread.com/java/2008/02/r397063.html
更多内容请看Eclipse应用技术、ASP.NET教程、Wlan组网----家庭专题专题,或进入讨论组讨论。
焦点事件
在窗口系统中,当组件获得输入焦点或失去焦点时将触发相应的事件。SWT通过FocusListener监听焦点事件。
FocusListener接口
在SWT中,通过实现FocusListener接口来响应获得焦点和失去焦点的事件。FocusListener接口如例程7所示。
例程7 FocusListener.java
在窗口系统中,当组件获得输入焦点或失去焦点时将触发相应的事件。SWT通过FocusListener监听焦点事件。
FocusListener接口
在SWT中,通过实现FocusListener接口来响应获得焦点和失去焦点的事件。FocusListener接口如例程7所示。
例程7 FocusListener.java
package org.eclipse.swt.events; import org.eclipse.swt.internal.SWTEventListener; public interface FocusListener extends SWTEventListener { public void focusGained(FocusEvent e); public void focusLost(FocusEvent e); }
其中,focusGained表示组件获得焦点事件的响应方法,focusLost表示组件失去焦点事件的响应方法,FocusEvent为系统传入的焦点事件的参数,用户可以通过FocusEvent参数找到相应的组件。
焦点事件实例
为了更深入地理解焦点事件,下面通过具体的实例演示如何响应焦点事件。该程序只是简单地改变当前获得焦点和失去焦点组件的显示信息,在具体的实例中,读者可以根据需要进行修改,代码如例程8所示。
例程8 FocusListenerExample.java
public class FocusListenerExample { public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setLayout(new GridLayout(3, true)); shell.setText("One Potato, Two Potato"); //新建焦点监听器 FocusListener listener = new FocusListener() { public void focusGained(FocusEvent event) { //获得触发事件的组件 Button button = (Button) event.getSource(); //焦点获得时改变显示文本 button.setText("I'm It!"); } public void focusLost(FocusEvent event) { //获得触发事件的组件 Button button = (Button) event.getSource(); //焦点获得时改变显示文本 button.setText("Pick Me!"); } }; for (int i = 0; i < 6; i++) { Button button = new Button(shell, SWT.PUSH); button.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); button.setText("Pick Me!"); button.addFocusListener(listener); } shell.pack(); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose(); } }
程序中显示了6个按钮,并为按钮添加上了焦点监听器,程序运行效果如图3所示。

图3 焦点事件实例
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- Eclipse应用技术 (514篇文章)
- ASP.NET教程 (8457篇文章)
- Wlan组网----家庭专题 (4206篇文章)
- FreeBSD使用教程 (6580篇文章)
- Eclipse 开发技术 (132篇文章)
- J2SE综合:浅谈java程序发布之 jre 篇 (11次浏览)
- JAVA代码中使用魔法数值 (8次浏览)
- Hibernate缓存管理 (6次浏览)
- JAVA代码应该流畅和结构化 (5次浏览)
- Java JVM设置对性能的影响 (4次浏览)
- 开发框架:深入了解 Struts Validator (3次浏览)
- Java中的通信机制及与C/C API的集成 (1次浏览)
- 用Hibernate实现领域对象的自定义字段 (1次浏览)
- Java语言入门 简述Java语言回收机制 (0次浏览)
- 2008年Java开发者最迫切的五个期望 (0次浏览)



