- 浏览: 13937 次
- 性别:
最新评论
监听器是用来实现一些可控操作的工具,如你在打开一个QQ界面的时候,点击登入按钮,这时就有一个监听器在执行登入这一方法。添加监听器的一般格式为:
需要加监听器的对象.add执行命令名Listeneer(实现接口的类);
代码如:Jframe.addMouseListener(DrawListener);
若你想在某一登入界面上加上一个按钮的监听器,其代码则为:
需要加监听器的对象.add执行命令名Listeneer(实现接口的类);
代码如:Jframe.addMouseListener(DrawListener);
若你想在某一登入界面上加上一个按钮的监听器,其代码则为:
package Loginfrme; import javax.swing.*; import java.awt.*; import java.awt.event.ActionListener; public class JavaTest { public static void main(String[] args){ //创建窗体对象 JFrame jf = new JFrame(); //设置标题 jf.setTitle("QQ2012"); //设置窗体大小 jf.setSize(180,150); //设置窗体大小不可变 jf.setResizable(false); //设置窗体默认关闭方式 jf.setDefaultCloseOperation(3); //创建窗体布局方式 FlowLayout fl=new FlowLayout(); //运用这个布局方式 jf.setLayout(fl); //创建标签对象 JLabel jl=new JLabel("账号:"); //把标签添加到窗体上 jf.add(jl); //创建注册账号输入框对象 JTextField jtf =new JTextField(10); //运用账号输入框 jf.add(jtf); //创建密码标签对象 JLabel jl_pwd =new JLabel("密码:"); //把密码添加到窗体 jf.add(jl_pwd); //创建密码输入框 JPasswordField jtf_pwd=new JPasswordField(10); //在窗体中运用密码输入框 jf.add(jtf_pwd); //创建登入按钮对象 JButton jb =new JButton("登入"); jb.setActionCommand("login"); jf.add(jb); //创建注册按钮对象 JButton jb_c =new JButton("注册"); jb_c.setActionCommand("regist"); jf.add(jb_c); ImageIcon icon = new ImageIcon("image/aa.png"); JLabel label = new JLabel(icon); jf.add(label); //建立窗体可视设置 jf.setVisible(true); //创建登入按钮监听器 LoginListen lis=new LoginListen(jtf,jtf_pwd); lis.jf1=jf; //建立到按钮上 jb.addActionListener(lis); //创建注册按钮监听器 LoginListen log=new LoginListen(jtf,jtf_pwd); log.jf1=jf; //建立到按钮上 jb_c.addActionListener(log); java.util.Random ran=new java.util.Random(); int i=ran.nextInt(300)+200; } } import java.awt.event.*; import javax.swing.*; public class LoginListen implements ActionListener{ //定义属性 JTextField jtf; JPasswordField jtf_pwd; JFrame jf1; public LoginListen(JTextField jt,JPasswordField jp){ jtf=jt; jtf_pwd=jp; } public void actionPerformed(ActionEvent e){ String command=e.getActionCommand(); if("login".equals(command)){ //得到用户名 String user=jtf.getText(); String pass=jtf_pwd.getText(); if("123".equals(user)&&"asd".equals(pass)){ System.out.println("登入账号是:"+user); System.out.println("登入密码是:"+pass); jf1.dispose(); JFrame jf2=new JFrame(); jf2.setSize(280,200); jf2.setVisible(true); }else{ javax.swing.JOptionPane.showConfirmDialog(null, "登陆失败!"); } }else if("regist".equals(command)){ jf1.dispose(); JFrame jf3=new JFrame(); jf3.setSize(280,200); jf3.setVisible(true); System.out.println("注册"); } } }变量的作用域分为全局变量和局部变量,全局变量作用于整个类中,局部变量则是作用于当前的某一方法中。如代码:
public class Num{ public static void main(String[]args){ int x=15; if(x==10){ int y=20; System.out.println(“x,y的值为:”+x+””+y); x=y+x; } //y=10;(错误) System.out.println(“x的值为:”+x); } }执行后得到的结果分别为:15 20;35如上面注释掉的y=10在不注释的情况下就会报错,而x=x+y这行代码为什么不报错呢?这就是因为在前面定义的x 起的作用,它可以用于整个语句,定义的y只能作用于if语句内。
发表评论
-
线程的同步通信与线程范围内的数据共享问题
2013-10-02 22:05 1348线程的同步通信与线程范围内的数据共享问题一、线程的同步通信 什 ... -
多线程初谈——线程的创建与互斥问题
2013-10-01 18:13 1439多线程初谈——线程的创建与互斥 对于线程起初也很是不 ... -
网络通信见解之谈
2013-07-17 13:38 658一、网络通信的基本原理 现如今,出现了各式各样的聊天平 ... -
简单的bmp文件打开与保存
2013-07-01 22:24 916简单的bmp文件打开与保 ... -
分形浅谈——科赫曲线和L-System
2013-06-24 22:47 1261分形浅谈开始接触到分行图时,感觉很难,无法下手,只能做出第一层 ... -
对关键字final、static的理解
2013-05-10 23:36 574一、final关键字 fin ... -
对关键字的理解——访问权限
2013-05-10 16:17 627关键字public、pr ... -
队列的定义及运用
2013-03-23 14:58 728队列简称队,是限制在表的一端进行插入操作,而在表的另一端进行删 ... -
重绘方法的重写利用
2013-03-22 21:44 649重绘是为了在画布上保留原始痕迹的一种方法,他的目的是用来保存你 ... -
数组的定义及递归的运用
2013-03-22 21:43 1056一、数组有一维数组、 ... -
java中的继承
2013-03-08 00:31 588Java中的接口 什么是接口?不是以class定义的类而是以i ... -
Java中类的继承、重写、自动转型以及多态
2013-03-06 01:13 748Java中类的继承、重写、自动转型以及多态 1) 类的继承 在 ... -
java的构造器方法、方法重载和引用传递
2013-03-04 23:55 765Java的构造器方法、方法重载与引用传递 一、 构造器方法 构 ... -
JAVA语言中的类与对象
2013-03-04 00:08 763Java语 ...
相关推荐
`$emit`用于向父作用域发送事件,`$broadcast`用于向所有子作用域发送事件,`$on`用于注册事件监听器。 总的来说,AngularJS的作用域是数据模型和视图之间的重要连接,它提供了一种高效的数据绑定机制和事件通信...
配置元件的作用域可以跨线程组,这意味着在某个线程组定义的配置元件中的变量可以在其他线程组中被引用。 2. 前置处理器: 前置处理器在采样器执行请求之前运行,通常用于执行一些预处理任务,如动态生成请求数据或...
2. **理解作用域生命周期**:在控制器的`$destroy`事件中,应清理所有的watch,以确保在控制器被销毁后,不再有监听器在后台运行。AngularJS的`$destroy`方法会禁用所有的监听器、watcher以及apply/digest方法。确保...
这意味着,如果在父作用域中定义了一个变量,内部控制器可以访问到它。然而,JavaScript的原型链继承只适用于引用类型,不适用于基本类型。在上述例子中,`$scope.a`被定义为基本类型(数字),因此,当`InnerCtrl`...
3. **事件广播与监听**:Controller可以通过 `$scope.$on()` 监听事件,而 `$scope.$emit()` 和 `$scope.$broadcast()` 可以用来在作用域树上向上或向下广播事件,实现不同Controller间的通信。 在JavaScript代码中...
在这个例子中,`getClosure`函数接受一个参数`$i`,然后在闭包内部将这个参数与当前时间拼接后赋值给闭包作用域内的同名变量`$i`。之后,这个闭包函数通过`use($i)`将外部的`$i`变量引入到其内部作用域中。这意味着...
因此,当你尝试在子作用域中修改父作用域的原始类型属性时,实际是在子作用域中创建一个新的局部变量,而不是修改父作用域的属性。为了解决这个问题,可以将原始类型转换为对象类型,然后将值绑定到对象的属性上,...
这是因为全局环境负责维护所有的全局变量和函数,以及事件监听器等。 #### 函数执行环境 每个函数都有自己的执行环境。当函数被调用时,它的执行环境会被压入执行环境栈的顶部,并获得执行权。当函数执行完毕,其...
- =(双向绑定):用于将父作用域的变量与指令内的变量进行双向绑定,任何一方数据的变化都会反映到另一方。 - &(函数绑定):用于绑定父作用域中的函数,当需要在指令内部调用父作用域中的方法时使用。这种方式常...
文章中提到了两个例子:第一个例子中,通过一个循环来创建带有闭包的函数数组,但是由于JavaScript变量作用域和循环的作用,所有函数最终都只访问到了循环的最终值。第二个例子通过立即执行函数表达式(IIFE)来解决...
例如,可以在任务监听器、事件处理器或者业务规则中设置或获取变量值。以下是一个简单的Java示例,展示如何在任务完成后更新变量: ```java Map, Object> variables = new HashMap(); variables.put("myVariable", ...
- **事件处理程序**:在事件监听器中,闭包可以确保即使外部函数已经执行完毕,事件处理函数仍然可以访问到所需的变量。 #### 五、闭包的例子 下面通过一个简单的例子来展示闭包的用法: ```javascript function ...
例如,在回调函数、定时器、事件监听器等场景下,闭包被用来保持对特定作用域的引用,如: ```javascript function logMessage(msg) { setTimeout(function() { console.log(msg); }, 1000); } logMessage('...
5. **闭包与事件监听器**:在处理DOM事件时,闭包可以用来保持对特定状态的访问,比如计数器或者用户输入状态。 6. **立即执行函数表达式(IIFE)**:利用闭包特性,创建一个独立的作用域,避免污染全局变量,同时...
理解Lambda的语法和作用域规则是充分利用这一特性的关键,同时也需要了解其与匿名内部类的异同,以便在适当的情况下选择最佳的实现方式。在实践中,开发者应根据需求和代码的可维护性来决定何时使用Lambda表达式。
- **事件处理函数**:当为一个元素添加事件监听器时,监听器函数可以访问定义它的作用域的变量。 4. **闭包的写法示例** 在提供的代码中,虽然没有直接展示闭包,但通过各种函数创建和使用方式展示了闭包的概念。...
- 使用`addEventListener`和`removeEventListener`来注册和移除事件监听器,这种方法可以确保在所有现代浏览器中一致的行为,并且可以避免作用域链的问题,因为它们使用的是独立的作用域。 总的来说,内联事件处理...
《函数与变量作用域》章节,深入分析了JavaScript中函数的细节以及作用域规则。这可能包括: - 函数声明与表达式的区别。 - 闭包的原理与应用。 - 变量的作用域链。 - 非局部变量的访问机制。 ### 六、利用...
3. **事件处理**:在事件监听器中,闭包可以保留事件触发时的上下文,确保回调函数能够正确操作相关变量。 4. **异步编程**:在Promise或async/await中,闭包可以帮助保存异步操作的状态。 深入理解闭包,还需要...