监听器与变量的作用域

监听器是用来实现一些可控操作的工具,如你在打开一个QQ界面的时候,点击登入按钮,这时就有一个监听器在执行登入这一方法。添加监听器的一般格式为:
需要加监听器的对象.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语句内。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值