标签:鼠标移动 null DDM getc 滚轮 窗体 dap tcl tla
动作事件
1、P255例13.22,以及P256例13.23,注意比较用 普通当前类和匿名内部类两种方式实现按钮对象的事件监听器。(必做题,20分)
代码1:
package MyAdvancedEvent;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import MyAdvancedEvent.SimpleEvent.jbAction;
public class SimpleEvents extends JFrame implements ActionListener{
private JButton jb=new JButton("我是按钮,单击我");
public SimpleEvents() {
setLayout(null);
setBounds(100,100,300,300);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add(jb);
jb.setBounds(10, 10, 150, 30);
jb.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
jb.setText("我被单击了");
}
public static void main(String[] args) {
new SimpleEvents();
}
}
代码2:
package MyAdvancedEvent;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import MyAdvancedEvent.SimpleEvent.jbAction;
public class SimpleEvent2 extends JFrame{
private JButton jb=new JButton("我是按钮,单击我");
public SimpleEvent2() {
setLayout(null);
setBounds(100,100,300,300);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add(jb);
jb.setBounds(10, 10, 150, 30);
jb.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jb.setText("我被单击了");
}
});
}
public static void main(String[] args) {
new SimpleEvent2();
}
}
运行截图:
鼠标事件
1、P460【例25.2】一个用来演示鼠标事件的典型示例MouseEvent_Example(必做题,20分)
代码:
package MyAdvancedEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.*;
public class MouseEvent1 {
JFrame f;
JLabel l;
public MouseEvent1() {
f=new JFrame();
l=new JLabel();
f.add(l);
l.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e) {
System.out.print("单击了鼠标按键,");
int i=e.getButton();
if(i==MouseEvent.BUTTON1) {
System.out.println("单击的是鼠标左键,");
}
if(i==MouseEvent.BUTTON2) {
System.out.println("单击的是鼠标滚轮,");
}
if(i==MouseEvent.BUTTON3) {
System.out.println("单击的是鼠标右键键,");
}
int clickcount=e.getClickCount();
System.out.println("单击次数为"+clickcount+"下");
}
public void mousePressed(MouseEvent e) {
System.out.print("鼠标按键被按下,");
int i=e.getButton();
if(i==MouseEvent.BUTTON1) {
System.out.println("按下的是鼠标左键,");
}
if(i==MouseEvent.BUTTON2) {
System.out.println("按下的是鼠标滚轮,");
}
if(i==MouseEvent.BUTTON3) {
System.out.println("按下的是鼠标右键键,");
}
}
public void mouseReleased(MouseEvent e) {
System.out.print("鼠标按键被释放,");
int i=e.getButton();
if(i==MouseEvent.BUTTON1) {
System.out.println("释放的是鼠标左键,");
}
if(i==MouseEvent.BUTTON2) {
System.out.println("释放的是鼠标滚轮,");
}
if(i==MouseEvent.BUTTON3) {
System.out.println("释放的是鼠标右键键,");
}
}
public void mouseEntered(MouseEvent e) {
System.out.println("光标移入组件");
}
public void mouseExited(MouseEvent e) {
System.out.println("光标移入组件");
}
});
f.setBounds(100, 100, 200, 200);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new MouseEvent1();
}
}
运行截图:
2、鼠标选色卡MouseEventColor,运行结果如下,通过鼠标点击不同的颜色,将窗体的背景色设置成不同。试用普通类、匿名内部类、鼠标适配器三种方式分别实例化监听器对象。
(必做题,20分)
代码1:
package MyAdvancedEvent;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.*;
public class MouseEventColor implements MouseListener{
JFrame f;
JPanel p;
Box box;
JButton[]Button=new JButton[7];
Color[]color= {Color.CYAN,Color.BLUE,Color.GRAY,Color.DARK_GRAY,Color.MAGENTA,Color.YELLOW,Color.PINK};
public MouseEventColor() {
f=new JFrame("选");
p=new JPanel();
box=Box.createHorizontalBox();
for(int i=0;i<7;i++) {
Button[i]=new JButton(" ");
Button[i].setBackground(color[i]);
Button[i].setFont(new Font("",Font.PLAIN,15));
Button[i].addMouseListener(this);
box.add(Button[i]);
}
p.add(box);
f.add(p);
f.setBounds(100, 100, 310, 300);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new MouseEventColor();
}
public void mouseClicked(MouseEvent e) {
if(e.getSource()==Button[0]) {
p.setBackground(color[0]);
}else if(e.getSource()==Button[1]) {
p.setBackground(color[1]);
}else if(e.getSource()==Button[2]) {
p.setBackground(color[2]);
}else if(e.getSource()==Button[3]) {
p.setBackground(color[3]);
}else if(e.getSource()==Button[4]) {
p.setBackground(color[4]);
}else if(e.getSource()==Button[5]) {
p.setBackground(color[5]);
}else{
p.setBackground(color[6]);
}
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
}
代码2:
package MyAdvancedEvent;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.*;
public class MouseEventColor1 {
JFrame f;
JPanel p;
Box box;
JButton[]Button=new JButton[7];
Color[]color= {Color.CYAN,Color.BLUE,Color.GRAY,Color.DARK_GRAY,Color.MAGENTA,Color.YELLOW,Color.PINK};
public MouseEventColor1() {
f=new JFrame("选");
p=new JPanel();
box=Box.createHorizontalBox();
for(int i=0;i<7;i++) {
Button[i]=new JButton(" ");
Button[i].setBackground(color[i]);
Button[i].setFont(new Font("",Font.PLAIN,15));
Button[i].addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e) {
if(e.getSource()==Button[0]) {
p.setBackground(color[0]);
}else if(e.getSource()==Button[1]) {
p.setBackground(color[1]);
}else if(e.getSource()==Button[2]) {
p.setBackground(color[2]);
}else if(e.getSource()==Button[3]) {
p.setBackground(color[3]);
}else if(e.getSource()==Button[4]) {
p.setBackground(color[4]);
}else if(e.getSource()==Button[5]) {
p.setBackground(color[5]);
}else{
p.setBackground(color[6]);
}
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
});
box.add(Button[i]);
}
p.add(box);
f.add(p);
f.setBounds(100, 100, 310, 300);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new MouseEventColor1();
}
}
代码3:
package MyAdvancedEvent;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.*;
public class MouseEventColor3 {
JFrame f;
JPanel p;
Box box;
Color[]color= {Color.CYAN,Color.BLUE,Color.GRAY,Color.DARK_GRAY,Color.MAGENTA,Color.YELLOW,Color.PINK};
public MouseEventColor3() {
f=new JFrame("");
p=new JPanel();
box=Box.createHorizontalBox();
for(int i=0;i<color.length;i++) {
final JButton button=new JButton(" ");
button.setBackground(color[i]);
button.setFont(new Font("",Font.PLAIN,15));
button.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
p.setBackground(button.getBackground());
}
});
box.add(button);
}
p.add(box);
f.add(p);
f.setBounds(100, 100, 310, 300);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new MouseEventColor3();
}
}
运行截图:
3、鼠标事件响应练习MouseEventapp.java。当鼠标进入窗口时,窗口的标题显示“欢迎”;当鼠标离开窗口时,窗口的标题显示“再见”;鼠标在窗体单击时,就在鼠标单击所在位置显示“开始”。(必做题,20分)
代码:
package MyAdvancedEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.*;
public class MouseEventapp {
JFrame f;
JLabel l;
public MouseEventapp() {
f=new JFrame("再见!");
l=new JLabel("开始");
f.add(l);
l.setVisible(false);
f.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
l.setVisible(true);
int x=e.getX(),y=e.getY()-30;
l.setBounds(x, y, 100, 20);
}
public void mouseEntered(MouseEvent e) {
f.setTitle("欢迎!");
}
public void mouseExited(MouseEvent e) {
f.setTitle("再见!");
l.setVisible(false);
}
});
f.setBounds(200, 200, 300, 300);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new MouseEventapp();
}
}
运行截图:
2、鼠标移动监听练习MyMouseMotionListener.java。当鼠标在窗体内移动和拖动时,分别显示如下信息:最前面是移动或拖动次数;最后面的是发生事件时鼠标所在的x坐标和y坐标(选做题,20分)
代码:
package MyAdvancedEvent;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import javax.swing.*;
public class MyMouseMotionLister {
JFrame f;
JLabel l;
JButton b;
JTextArea ta;
JScrollPane sp;
int count;
public MyMouseMotionLister() {
f=new JFrame("MyMouseMotionLister");
l=new JLabel("click and drag the mouse");
b=new JButton("退出");
ta=new JTextArea();
sp=new JScrollPane(ta);
sp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
f.add(l,BorderLayout.NORTH);
f.add(sp,BorderLayout.CENTER);
f.add(b,BorderLayout.SOUTH);
f.setSize(400, 300);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ta.addMouseMotionListener(new MouseMotionListener() {
public void mouseDragged(MouseEvent e) {
int xx=e.getX(),yy=e.getY();
count++;
String counts=count+"",x=xx+"",y=yy+"";
String content=counts+"the mouse is drag:x="+x+",y="+y;
ta.append(content+"\n");
}
public void mouseMoved(MouseEvent e) {
int xx=e.getX(),yy=e.getY();
count++;
String counts=count+"",x=xx+"",y=yy+"";
String content=counts+"the mouse is moving:x="+x+",y="+y;
ta.append(content+"\n");
}
});
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(e.getSource()==b){
System.exit(0);
}
}
});
}
public static void main(String[] args){
new MyMouseMotionLister();
}
}
运行截图:
标签:鼠标移动 null DDM getc 滚轮 窗体 dap tcl tla
原文地址:https://www.cnblogs.com/quan-2723365710/p/12164024.html