java登录界面监听,Java自学-图形界面 事件监听

Swing 如何进行事件监听

示例 1 : 按钮监听

创建一个匿名类实现ActionListener接口,当按钮被点击时,actionPerformed方法就会被调用

7174ff61e8bb

按钮监听

package gui;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

public class TestGUI {

public static void main(String[] args) {

JFrame f = new JFrame("LoL");

f.setSize(400, 300);

f.setLocation(580, 200);

f.setLayout(null);

final JLabel l = new JLabel();

ImageIcon i = new ImageIcon("e:/project/j2se/shana.png");

l.setIcon(i);

l.setBounds(50, 50, i.getIconWidth(), i.getIconHeight());

JButton b = new JButton("隐藏图片");

b.setBounds(150, 200, 100, 30);

// 给按钮 增加 监听

b.addActionListener(new ActionListener() {

// 当按钮被点击时,就会触发 ActionEvent事件

// actionPerformed 方法就会被执行

public void actionPerformed(ActionEvent e) {

l.setVisible(false);

}

});

f.add(l);

f.add(b);

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.setVisible(true);

}

}

示例 2 : 键盘监听

键盘监听器: KeyListener

keyPressed 代表 键被按下

keyReleased 代表 键被弹起

keyTyped 代表 一个按下弹起的组合动作

KeyEvent.getKeyCode() 可以获取当前点下了哪个键

7174ff61e8bb

键盘监听

package gui;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

public class TestGUI {

public static void main(String[] args) {

JFrame f = new JFrame("LoL");

f.setSize(400, 300);

f.setLocation(580, 200);

f.setLayout(null);

final JLabel l = new JLabel();

ImageIcon i = new ImageIcon("e:/project/j2se/shana.png");

l.setIcon(i);

l.setBounds(50, 50, i.getIconWidth(), i.getIconHeight());

// 增加键盘监听

f.addKeyListener(new KeyListener() {

// 键被弹起

public void keyReleased(KeyEvent e) {

// 39代表按下了 “右键”

if (e.getKeyCode() == 39) {

// 图片向右移动 (y坐标不变,x坐标增加)

l.setLocation(l.getX() + 10, l.getY());

}

}

//键被按下

public void keyPressed(KeyEvent e) {

// TODO Auto-generated method stub

}

// 一个按下弹起的组合动作

public void keyTyped(KeyEvent e) {

}

});

f.add(l);

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.setVisible(true);

}

}

示例 3 : 鼠标监听

MouseListener 鼠标监听器

mouseReleased 鼠标释放

mousePressed 鼠标按下

mouseExited 鼠标退出

mouseEntered 鼠标进入

mouseClicked 鼠标点击

在本例中,使用mouseEntered,当鼠标进入图片的时候,图片就移动位置

7174ff61e8bb

鼠标监听

package gui;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.util.Random;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

import javax.swing.JLabel;

public class TestGUI {

public static void main(String[] args) {

final JFrame f = new JFrame("LoL");

f.setSize(800, 600);

f.setLocationRelativeTo(null);

f.setLayout(null);

final JLabel l = new JLabel();

ImageIcon i = new ImageIcon("e:/project/j2se/shana_heiheihei.png");

l.setIcon(i);

l.setBounds(375, 275, i.getIconWidth(), i.getIconHeight());

f.add(l);

l.addMouseListener(new MouseListener() {

// 释放鼠标

public void mouseReleased(MouseEvent e) {

// TODO Auto-generated method stub

}

// 按下鼠标

public void mousePressed(MouseEvent e) {

// TODO Auto-generated method stub

}

// 鼠标退出

public void mouseExited(MouseEvent e) {

// TODO Auto-generated method stub

}

// 鼠标进入

public void mouseEntered(MouseEvent e) {

Random r = new Random();

int x = r.nextInt(f.getWidth() - l.getWidth());

int y = r.nextInt(f.getHeight() - l.getHeight());

l.setLocation(x, y);

}

// 按下释放组合动作为点击鼠标

public void mouseClicked(MouseEvent e) {

// TODO Auto-generated method stub

}

});

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.setVisible(true);

}

}

示例 4 : 适配器

MouseAdapter 鼠标监听适配器

一般说来在写监听器的时候,会实现MouseListener。

但是MouseListener里面有很多方法实际上都没有用到,比如mouseReleased ,mousePressed,mouseExited等等。

这个时候就可以使用 鼠标监听适配器,MouseAdapter 只需要重写必要的方法即可。

package gui;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.util.Random;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

import javax.swing.JLabel;

public class TestGUI {

public static void main(String[] args) {

final JFrame f = new JFrame("LoL");

f.setSize(800, 600);

f.setLocationRelativeTo(null);

f.setLayout(null);

final JLabel l = new JLabel("");

ImageIcon i = new ImageIcon("e:/project/j2se/shana_heiheihei.png");

l.setIcon(i);

l.setBounds(375, 275, i.getIconWidth(), i.getIconHeight());

f.add(l);

// MouseAdapter 适配器,只需要重写用到的方法,没有用到的就不用写了

l.addMouseListener(new MouseAdapter() {

// 只有mouseEntered用到了

public void mouseEntered(MouseEvent e) {

Random r = new Random();

int x = r.nextInt(f.getWidth() - l.getWidth());

int y = r.nextInt(f.getHeight() - l.getHeight());

l.setLocation(x, y);

}

});

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.setVisible(true);

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值