第十三周课程总结

第十三周课程总结

一、键盘事件及监听处理

定义

KeyListener接口方法:

如果想要取得键盘输入的内容,则可以通过KeyEvent取得。

KeyEvent事件的常用方法:

例如:

package diyishiba;

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.*;

public class Key implements KeyListener{
	
	JFrame jfr=new JFrame("窗口");
	JTextArea jte=new JTextArea();
	JScrollPane jsc=new JScrollPane(jte,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
	public Key() {
		jte.addKeyListener(this);
		jfr.add(jsc);
		jfr.setSize(400,300);
		jfr.setVisible(true);
	}
	public void keyTyped(KeyEvent e) {
		jte.append("键盘输入的是"+e.getKeyChar()+"
");
	}

	
	public void keyPressed(KeyEvent e) {
		jte.append("键盘按下的是"+e.getKeyText(e.getKeyCode())+"
");
	}
	
	
	public void keyReleased(KeyEvent e) {
		jte.append("键盘松开时的是"+e.getKeyText(e.getKeyCode())+"
");
		
	}
	
}

测试类:

package diyishiba;

public class test11 {

	public static void main(String[] args) {
		new Key();

	}

}

运行截图:

二、鼠标事件及监听处理

定义:

MouseListener接口的方法:


MouseEvent事件的常用方法:

例如:

package diyishiba;

import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class MouseL implements MouseListener{

	JFrame jfr=new JFrame("窗口");
	JTextArea jte=new JTextArea();
	JScrollPane jsc=new JScrollPane(jte,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
	public MouseL() {
		jte.addMouseListener(this);
		jfr.add(jsc);
		jfr.setSize(300, 400);
		jfr.setVisible(true);
	}
	public void mouseClicked(MouseEvent e) {
		int i=e.getButton();
		String j=null;
		if(i==MouseEvent.BUTTON1) {
			j="左键";
		}
		else if(i==MouseEvent.BUTTON3) {
			j="右键";
		}
		jte.append("鼠标单击的是"+j+"
");
	}

	@Override
	public void mousePressed(MouseEvent e) {
		// TODO 自动生成的方法存根
		
	}

	@Override
	public void mouseReleased(MouseEvent e) {
		// TODO 自动生成的方法存根
		
	}

	@Override
	public void mouseEntered(MouseEvent e) {
		jte.append("鼠标进入文本框"+"
");
		
	}

	@Override
	public void mouseExited(MouseEvent e) {
		jte.append("鼠标离开文本框"+"
");
		
	}
	
}

测试类:

package diyishiba;

public class Test12 {

	public static void main(String[] args) {
		new MouseL();

	}

}

运行截图

三、鼠标拖拽事件及监听处理:

定义:

MouseMotionListener接口的方法:

例如:

package diyishiba;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import javax.swing.JFrame;
public class MouseMotionL implements MouseMotionListener{
	JFrame jfr=new JFrame("窗口");
	public MouseMotionL() {
		jfr.addMouseMotionListener(this);
		jfr.setSize(400, 300);
		jfr.setVisible(true);
	}
	@Override
	public void mouseDragged(MouseEvent e) {
		System.out.println("鼠标拖拽到:X="+e.getX()+",Y="+e.getY());
		
	}

	@Override
	public void mouseMoved(MouseEvent e) {
		System.out.println("鼠标移动到窗口");
		
	}
	
}

测试类:

package diyishiba;

public class Test13 {

	public static void main(String[] args) {
		new MouseMotionL();
	}

}

运行截图:

四、单选钮:JRadioButton

定义:

JRadioButton类的常用方法:

例如:

package diyishiba;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import java.awt.GridLayout;
public class JRadioB {
	JFrame jfr;
	JPanel jpa;
	JRadioButton jra1,jra2,jra3;
	public JRadioB() {
		jfr=new JFrame("窗口");
		jpa=new JPanel();
		jra1=new JRadioButton("和平精英");
		jra2=new JRadioButton("王者荣耀");
		jra3=new JRadioButton("不玩游戏");
		
		jpa.setBorder(BorderFactory.createTitledBorder("请选择平时喜欢玩的游戏"));
		jpa.setLayout(new GridLayout(1,3));
		jpa.add(jra1);
		jpa.add(jra2);
		jpa.add(jra3);
		
		jfr.add(jpa);
		jfr.setSize(330, 80);
		jfr.setVisible(true);
	}
}

测试类:

package diyishiba;

public class Test13 {

	public static void main(String[] args) {
		new JRadioB();
	}

}

运行截图:

因为没有加单选按钮组所以可以多选,加上之后如下:

package diyishiba;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import java.awt.GridLayout;
import javax.swing.ButtonGroup;
public class JRadioB {
	JFrame jfr;
	JPanel jpa;
	JRadioButton jra1,jra2,jra3;
	ButtonGroup group;
	public JRadioB() {
		jfr=new JFrame("窗口");
		jpa=new JPanel();
		jra1=new JRadioButton("和平精英");
		jra2=new JRadioButton("王者荣耀");
		jra3=new JRadioButton("不玩游戏");
		group=new ButtonGroup();
		
		jpa.setBorder(BorderFactory.createTitledBorder("请选择平时喜欢玩的游戏"));
		jpa.setLayout(new GridLayout(1,3));
		jpa.add(jra1);
		jpa.add(jra2);
		jpa.add(jra3);
		
		group.add(jra1);
		group.add(jra2);
		group.add(jra3);
		
		
		jfr.add(jpa);
		jfr.setSize(330, 80);
		jfr.setVisible(true);
	}
}

测试类

package diyishiba;

public class Test13 {

	public static void main(String[] args) {
		new JRadioB();
	}

}

运行截图:

从这里可以看出,加上ButtonGroup方法后就只能单选了。

从这次写代码中又学到了一些新的知识点,就是怎么加一个有标题的边框,如下图:运用setBorder方法添加一个边框。


五、JRadioButton事件处理

定义:

ItemListener接口的方法:

此方法中存在ItemEvent事件,此事件的常用方法及常量如下图所示:

例如:

package diyishiba;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import java.awt.GridLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.ButtonGroup;
public class JRadioB implements ItemListener{
	JFrame jfr;
	JPanel jpa;
	JRadioButton jra1,jra2,jra3;
	ButtonGroup group;
	public JRadioB(){
		jfr=new JFrame("窗口");
		jpa=new JPanel();
		jra1=new JRadioButton("和平精英");
		jra2=new JRadioButton("王者荣耀");
		jra3=new JRadioButton("不玩游戏");
		group=new ButtonGroup();
		
		
		jra1.addItemListener(this);
		jra2.addItemListener(this);
		jra3.addItemListener(this);
		
		
		jpa.setBorder(BorderFactory.createTitledBorder("请选择平时喜欢玩的游戏"));
		jpa.setLayout(new GridLayout(1,3));
		jpa.add(jra1);
		jpa.add(jra2);
		jpa.add(jra3);
		
		
		group.add(jra1);
		group.add(jra2);
		group.add(jra3);
		
		
		jfr.add(jpa);
		jfr.setSize(330, 80);
		jfr.setVisible(true);
	}
	@Override
	public void itemStateChanged(ItemEvent e) {
		if(e.getSource()==jra1) {
			if(e.getStateChange()==ItemEvent.SELECTED) {
				JOptionPane.showMessageDialog(null, "你的选择是"+jra1.getText());
			}
		}
		else if(e.getSource()==jra2) {
			if(e.getStateChange()==ItemEvent.SELECTED) {
				JOptionPane.showMessageDialog(null, "你的选择是"+jra2.getText());
			}
		}
		else if(e.getSource()==jra3) {
			if(e.getStateChange()==ItemEvent.SELECTED) {
				JOptionPane.showMessageDialog(null, "你的选择是"+jra3.getText());
			}
		}
		
	}
}

测试类:

package diyishiba;

public class Test13 {

	public static void main(String[] args) {
		new JRadioB();
	}

}

运行截图:

从这次写代码中也学到了一个新的知识点,可以运用JOptionPane方法弹出窗口,如下图所示:

六、菜单组件

定义:

JMenuBar的常用方法:

JMenu的常用方法:

例如:

package diyishiba;
import java.awt.*;
import javax.swing.*;
public class Jmenub {
	JFrame frame;
	JTextArea area;
	JMenu menu1,menu2;
	JMenuBar bar;
	public Jmenub() {
		frame=new JFrame("窗口");
		area=new JTextArea();
		menu1=new JMenu("文件");
		menu2=new JMenu("编辑");
		bar=new JMenuBar();
		
		
	
		bar.add(menu1);
		bar.add(menu2);
		
		frame.setJMenuBar(bar);
		frame.add(area);
		frame.setSize(300, 100);
		frame.setVisible(true);
	}
}

测试类:

package diyishiba;

public class Test13 {

	public static void main(String[] args) {
		new Jmenub();
	}

}

运行截图:

原文地址:https://www.cnblogs.com/lcbxhda/p/11916951.html