Java 事件处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 事件处理相关的知识,希望对你有一定的参考价值。

如果按下键盘的A键时隐藏第一个窗口,弹出第二个窗口。按下按钮时退出。滑动滚轮时文字框里的文字增大或减少1。对了,import后面都接什么啊?如果都帮忙解决了,那就谢谢各位大侠了!!!!!我想这点小问题应该很容易吧!

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//该类用了3个接口,必须实现所有方法
public class Action extends JFrame implements KeyListener,ActionListener,MouseWheelListener
JTextArea ta;
JButton b;
JScrollPane sp;
JPanel p;
static int i = 12;
public Action()
ta = new JTextArea("注意:滑动滚轮时此文本域里的文字大小变化(增大或减少1)");
ta.setEditable (false);//不可编辑
ta.setLineWrap (true);//自动换行
ta.setForeground (Color.BLUE);//字体颜色
sp = new JScrollPane(ta);
setFont(i);

b = new JButton("退出");
p = new JPanel(new FlowLayout(FlowLayout.RIGHT));
p.add (b);
this.add (sp,BorderLayout.CENTER);
this.add (p,BorderLayout.SOUTH);
this.setTitle ("Java事件处理");
this.setSize (400,300);
this.setLocationRelativeTo (null);//窗口居中
this.setVisible (true);
this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
ta.addKeyListener (this);
sp.addMouseWheelListener (this);
b.addActionListener (this);

public void setFont(int i)
ta.setFont (new Font(Font.SERIF,Font.PLAIN,i));
sp.setBorder (BorderFactory.createTitledBorder ("字体大小:"+i));

public static void main(String[] args)
JFrame.setDefaultLookAndFeelDecorated (true);
new Action();

public void keyPressed(KeyEvent e)

if(e.getKeyText(e.getKeyCode()).equals ("A"))
if(this.isVisible ()==true)
this.setVisible (false);
else
this.setVisible (true);

JFrame f = new JFrame("新窗口");
f.setBounds(400,200,300,300);
f.setVisible (true);


public void keyReleased(KeyEvent e)
public void keyTyped(KeyEvent e)
public void actionPerformed(ActionEvent e)
System.exit (0);

public void mouseWheelMoved(MouseWheelEvent e)

if(e.getWheelRotation ()>0) i++;//滚轮向下滚每次 +1
else i--;
setFont(i);

参考技术A AWT(⊙o⊙)?import java.awt.*;
import javax.swing.*;import java.awt.event.*;要问import后面 那可多了去了……API看看吧
参考技术B import后面的都是java包名,你要用到那个包中的类就接那个包

[Core Java笔记]初学事件处理

VB的事件处理:每个GUI组件都响应固定的事件集,不可能改变其事件集.

C的事件处理:编写代码,可读性差,响应事件不受限制.

Java的事件处理:(VB与C的折中)事件委托模型.

 

Java把事件的相关信息都封装在事件对象中.(例如button,按钮等等)

所有事件的始祖类为java.util.EventObject.

AWT事件处理重要的参与对象:

  (1)事件监听器:实现了特定监听器接口的对象.(可以分析事件)

  (2)事件源:注册了监听器对象,事件发生时发送事件对象给他 .(捕获自己管理的事件,传给监听器)

    当事件发生时,事件源把事件对象传递给 所有注册的监听器. (事件源捕获事件,传给监听器)

    事件监听器利用事件对象中的信息决定如何对事件做出相应.(监听器分析事件,作出响应)

技术分享图片
1 ActionListener lsner = .....;
2 
3 JButton btn = new JButton("OK");
4 
5 btn.addActionListener(lsner);    //只要一按按钮,lsner就会得到通告
View Code

实现ActionListener接口的监听器类必须有actionPerformed方法:

技术分享图片
 1 class MyListener implements ActionListener
 2 
 3 {
 4 
 5   ...
 6 
 7   public void actionPerformed(Actionevent event)
 8 
 9   {      //只要用户点击按钮,JButton就会创建一个ActionEvent对象,调用此方法传递事件对象.
10 
11     //reaction to button click goes here
12 
13     ....
14 
15   }
16 
17 }
View Code

 

以上是关于Java 事件处理的主要内容,如果未能解决你的问题,请参考以下文章

[Core Java笔记]初学事件处理

java事件处理

java 事件处理器

事件处理是什么?

Java AWT 图形界面编程事件处理机制 ① ( 事件处理步骤 | 创建事件源对象 -> 自定义事件监听器 -> 创建监听器实例对象 -> 事件源绑定事件监听器 )

Java AWT 图形界面编程事件处理机制 ① ( 事件处理步骤 | 创建事件源对象 -> 自定义事件监听器 -> 创建监听器实例对象 -> 事件源绑定事件监听器 )