第十三周课程总结
这一周主要学习了键盘事件、鼠标事件、菜单组件
一、键盘事件及监听处理
在Swing事件处理中也可以对见哦的操作进行监听,直接使用KeyListener  接口即可
KeyListener接口方法:
| 方法 | 类型 | 描述 | 
|---|---|---|
| void keyTyped(KeyEvent e) | 普通 | 键入某个键时调用 | 
| void keyPressed(KeyEvent e) | 普通 | 键盘按下时调用 | 
| void keyReleased(KeyEvent e) | 普通 | 键盘松开时调用 | 
KeyEvent事件的常用方法:
| 方法 | 类型 | 描述 | 
|---|---|---|
| public char getKeyChar() | 普通 | 返回键入的字符,只针对keyTyped有意义 | 
| puclic int getKeyCode() | 普通 | 返回键入字符的键码 | 
| public static String getKeyText(int keyCode) | 普通 | 返回此键的信息,如"HOME"、"F1"或"A"等 | 
实现键盘监听:
package 图形界面;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.*;
public class MyKeyHandle extends JFrame implements KeyListener {
	private JTextArea text=new JTextArea();
	public MyKeyHandle(){
		super.setTitle("Welcome To MLDN");
		JScrollPane scr =new JScrollPane(text);              //加入滚动条
		scr.setBounds(5,5,300,200);
		super.add(scr);                                      //在窗体中加入组件
		text.addKeyListener(this);                           //加入Key监听
		super.setSize(310,210);                              //设置窗体大小
		super.setVisible(true);                              //显示窗体
		super.addWindowListener(new WindowAdapter() {        //加入事件监听
		//覆写窗口关闭方法
			public void windowClosing(WindowEvent arg0) {
				System.exit(1);                              //系统退出
			}
	});
	
	
	@Override
	public void keyTyped(KeyEvent e) {                        //键入内容
		text.append("输入的内容是:"+e.getKeyChar()+"\n"); 
		
	}
	@Override
	public void keyPressed(KeyEvent e) {                      //键盘按下
		text.append("键盘"+KeyEvent.getKeyText(e.getKeyCode())+"键盘按下\n");
		
	}
	@Override 
	public void keyReleased(KeyEvent e) {                      //键盘松开
		text.append("键盘"+KeyEvent.getKeyText(e.getKeyCode())+"松开\n");
		
	}
	public class MyKeyEventDemo01{
		public void main(String[] args) {
			new MyKeyHandle();
		}
	}
}
上面的程序针对每个键盘的操作都会监听,而且在取得键盘信息时最好使用KeyEvent类提供静态方法getKeyText()完成
提示:
this表示当前对象。
以上程序中,MyKeyHandle实现了KeyListener监听接口,所以此类也就是监听操作类,这样当JTextArea增加事件时直接使用了this关键字
text.addKeyListener(this);
this表示当前对象,此时将this加入到监听器中,表示将一个监听处理类加入到监听器中。
在键盘监听器中,也可以使用KeyAdapter这个适配器完成键盘事件的监听:
package 图形界面;
import java.awt.event.*;
import javax.swing.*;
public class MyKey extends JFrame {         //此类定义时直接继承了JFrame类
	private JTextArea text=new JTextArea();
	public MyKey() {
		super.setTitle("welcome to mldn");  
		JScrollPane scr= new JScrollPane(text);          //加入滚动条
		scr.setBounds(5,5,300,200);                 
		super.add(scr);                                  //在窗体中加入组件
		text.addKeyListener(new KeyAdapter() {
			public void keyTyped(KeyEvent e) {
				text.append("输入的内容是:"+e.getKeyChar()+"\n");
			}
	});                     //加入key监听
		super.setSize(310,210);  
		super.setVisible(true);
		super.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent arg0) {
			System.exit(1);
			}
		});
}
	public class MyKeyEvent{
		public void main(String[] args) {
			new MyKey();
		}
	}
}

二、鼠标事件及监听处理
如果想对一个鼠标的操作进行监听,可以使用MouseListener接口
MouseListener接口方法:
| 方法 | 类型 | 描述 | 
|---|---|---|
| void mouseClicked(MouseEvent e) | 普通 | 鼠标单击时调用(按下并释放) | 
| void mousePressed(MouseEvent e) | 普通 | 鼠标按下时调用 | 
| void mouseReleased(MouseEvent e) | 普通 | 鼠标松开时调用 | 
| void mouseEntered(MouseEvent e) | 普通 | 鼠标进入到组件时调用 | 
| void mouseExited(MouseEvent e) | 普通 | 鼠标离开组件时调用 | 
MouseEvent事件的常用方法
| 方法及常量 | 类型 | 描述 | 
|---|---|---|
| public static final int BUTTON1 | 常量 | 表示鼠标左键的常量 | 
| public static final int BUTTON2 | 常量 | 表示鼠标滚轴的常量 | 
| public static final int BUTTON3 | 常量 | 表示鼠标右键的常量 | 
| public int getButton() | 普通 | 以数字形式返回按下的鼠标键 | 
| public int getClickCount() | 普通 | 返回鼠标的单机次数 | 
| public static String getMouseModifiersText(int modifiers) | 普通 | 以字符串形式返回鼠标按下的键信息 | 
| public int getX() | 普通 | 返回鼠标操作的X坐标 | 
| public int getY() | 普通 | 返回鼠标操作的Y坐标 | 
实现鼠标监听:
package 图形界面;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MyMouseHandle
{
    //定义该图形中所需的组件的引用
    private Frame f;
    private Button bt; 
    //方法
    MyMouseHandle()//构造方法
    {
        madeFrame();
    }
    public void madeFrame()
    {
        f = new Frame("My Frame");
        //对Frame进行基本设置。
        f.setBounds(300,100,600,500);//对框架的位置和大小进行设置
        f.setLayout(new FlowLayout(FlowLayout.CENTER,5,5));//设计布局
        bt = new Button("My Button");
        //将组件添加到Frame中
        f.add(bt);
        //加载一下窗体上的事件
        myEvent();
        //显示窗体
        f.setVisible(true);
    }
    private void myEvent()
    {
        f.addWindowListener(new WindowAdapter()//窗口监听
        {
            public void windowClosing(WindowEvent e)
            {
                System.out.println("窗体执行关闭!");
                System.exit(0);
            }
        });
        bt.addActionListener(new ActionListener()//按钮监听
        {
            public void actionPerformed(ActionEvent e)
            {
                 System.out.println("按钮活动了!");
            }
        });
        bt.addMouseListener(new MouseAdapter()//鼠标监听
        {
            private int count = 1; 
            private int mouseCount = 1;
            public void mouseEntered(MouseEvent e)
            {
                System.out.println("鼠标监听"+count++);
            }
            public void mouseClicked(MouseEvent e)
            {
                if(e.getClickCount()==2)
                   System.out.println("鼠标被双击了");
                else System.out.println("鼠标被点击"+mouseCount++);
            }
        });
    }
    public static void main(String[] agrs)
    {
        new MyMouseHandle();
    }
}

鼠标拖拽事件几起监听处理
| 方法 | 类型 | 描述 | 
|---|---|---|
| void mouseDragged(MouseEVent e) | 普通 | 在组件上按下并拖动时调用 | 
| void mouseMoved(MouseEvent e) | 普通 | 鼠标移动到组件时调用 | 
三、单选钮:JRadioButton
单选钮就是在给出多个显示信息中指定选择一个,在Swing中可以使用JRadioButton完成一组单选钮的操作
| 方法 | 类型 | 描述 | 
|---|---|---|
| public JRadioButton(Icon icon) | 构造 | 建立一个单选钮,并指定图片 | 
| public JRadioButton(Icon icon,boolean selected) | 构造 | 建立一个单选钮,并指定图片和其是否选定 | 
| public JRadioButton(String text) | 构造 | 建立一个单选钮,并指定其文字,默认为不选定 | 
| public JRadioButton(String text,boolean selected) | 构造 | 建立一个单选钮,并指定稳住和其是否选定 | 
| public JRadioButton(String text,Icon icon,boolean selected) | 构造 | 建立一个单选钮,并指定图片、文字、和其是否选定 | 
| public void setSelected(boolean b) | 普通 | 设置是否被选中 | 
| public boolean isSelected() | 普通 | 返回是否被选中 | 
| public void setText(String text) | 普通 | 设置显示文本 | 
| public void setIcon(Icon defaultIcon) | 普通 | 设置图片 | 
package java.图形界面;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.BorderFactory;
//完成单选的实现
class MyRadio
{
	//设置一窗体
	private JFrame frame = new JFrame("单选按钮");
	//获取窗体容器
	private Container cont = frame.getContentPane();
	//定义三个窗体按钮
	private JRadioButton jradio1 = new JRadioButton("男");
	private JRadioButton jradio2 = new JRadioButton("女");
	//定义一个面板
	private JPanel pan = new JPanel();
	public MyRadio()
	{
		//设置边框显示条
		pan.setBorder(BorderFactory.createTitledBorder("性别:"));
		//定义排版样式
		pan.setLayout(new GridLayout(3, 1));
		pan.add(this.jradio1);
		pan.add(this.jradio2);
		cont.add(pan);
		this.frame.setSize(400, 200);
		this.frame.setVisible(true);
		//监听窗体关闭事件
		this.frame.addWindowListener(new WindowAdapter()
		{
			public void windowClosing(WindowEvent obj)
			{
				System.exit(1);
			}
		});
	}
}
public class JRadioButtonDemo01
{
	public static void main(String args[])
	{
		new MyRadio();
	}
}

四、复选框JCheckBox

package 图形界面;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JCheckBox;
import javax.swing.BorderFactory;
class MyCheckBox
{
    // 窗体
    private JFrame frame = new JFrame("使用复选框"); // 定义窗体
    private Container cont = frame.getContentPane(); // 得到窗体容器
    private JCheckBox jcb1 = new JCheckBox("复选框1"); // 定义一个复选框
    private JCheckBox jcb2 = new JCheckBox("复选框2"); // 定义一个复选框
    private JCheckBox jcb3 = new JCheckBox("复选框3"); // 定义一个复选框
    private JPanel pan = new JPanel();
    public MyCheckBox()
    {
        pan.setBorder(BorderFactory.createTitledBorder("多选:"));
        pan.setLayout(new GridLayout(1, 3)); // 设置组件的排版
        pan.add(this.jcb1); // 增加组件
        pan.add(this.jcb2); // 增加组件
        pan.add(this.jcb3); // 增加组件
        cont.add(pan); // 将面板加入到容器之中
        this.frame.setSize(330, 80);
        this.frame.setVisible(true); // 设置可显示
        // 监听窗体关闭事件
        this.frame.addWindowListener(new WindowAdapter()
        {
            public void windowClosing(WindowEvent arg)
            {
                System.exit(1);
            }
        });
    }
}
public class  JCheckBoxDemo01
{
    public static void main(String args[])
    {
        new MyCheckBox();
    }
}

菜单组件




 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号