Java进阶(GUI编程_事件机制②)
来源:互联网 发布:app分发平台系统源码 编辑:程序博客网 时间:2024/05/03 19:30
Graphics类:
每个Component都有一个paint(Graphics g)用于实现绘图的目的,每次窗口重绘该Component时都会自动调用paint方法。
至于Graphics类中提供了多少绘图方法,具体查API就可以了。
例题:piant方法是从父类继承下来的,当窗口重绘时,就会自动调用这个方法,它的参数可以看成一个画笔,是系统给的一个画笔,给你画笔让你自己画。
paint是系统自己调用的,不用我们显示进行调用。
paint方法里的第一句和倒数第一句的代码,是为了养成编程的良好习惯,当系统将画笔传递给你的时候,但是它已经使用了,上面存的颜色是系统调用时存的,所以我们要先暂存起来,最后再换回去。
而setColor是设置画笔的颜色,fillOval和drawOval是Grphics类的方法,绘画实心圆和空心圆。
鼠标事件实例:
import java.awt.*;import java.awt.event.*;import java.util.*;public class AddProject {public static void main(String[] args){new PaintTest("MouseTest!");}}class PaintTest extends Frame{ArrayList points = null;//用来存储这些“点”PaintTest(String Frame_Name)//构造方法{super(Frame_Name);points = new ArrayList();setBounds(200,200,400,400);setVisible(true);this.addMouseListener(new Monitor());//添加一个鼠标事件监听器}public void paint(Graphics g){Iterator i = points.iterator();//容器迭代器while(i.hasNext()){Point p = (Point)i.next();//每拿到容器内的一个元素就向下转型为Point类型g.setColor(Color.red);//设置画笔的颜色g.fillOval(p.x,p.y,10,10);//画出这个圆,x、y点,大小为10,10}}public void addPoint(Point p){points.add(p);//鼠标每单击一下就添加一个容器元素,类型为Point}class Monitor extends MouseAdapter//MouseAdpter实现了MouseListener接口{public void mousePressed(MouseEvent e){PaintTest p = (PaintTest)e.getSource();//取出封装的信息p.addPoint(new Point(e.getX(),e.getY()));//取鼠标当前x,y的值p.repaint();//强制重绘画面}}}
键盘事件实例:
import java.awt.*;import java.awt.event.*;public class KeyTest{public static void main(String[] args){new KeyTestFrame("键盘事件实例");}}class KeyTestFrame extends Frame{KeyTestFrame(String Frame_name){super(Frame_name);TextField t = new TextField(100);setBounds(200,200,400,400);add(t);setVisible(true);t.addKeyListener(new KeyMointor());}class KeyMointor extends KeyAdapter{public void keyPressed(KeyEvent e){int Key = e.getKeyCode();if(Key == KeyEvent.VK_UP){System.out.println("UP");}}}}
Windows事件实例:
package SmallProject;import java.awt.*;import java.awt.event.*;public class WindowsCloseTest{public static void main(String[] args) {new WindowFrame("Windows Close Test!");}}class WindowFrame extends Frame{WindowFrame(String Frame_name){super(Frame_name);setBounds(200,200,400,400);setVisible(true);addWindowListener(new WindowMointor());}class WindowMointor extends WindowAdapter{public void windowClosing(WindowEvent e){setVisible(false);System.exit(-1);}}}
0 0
- Java进阶(GUI编程_事件机制②)
- Java进阶(GUI编程_事件机制①)
- **JAVA** GUI图形界面编程-事件监听机制
- Java进阶(GUI编程基础)
- java GUI(2)--事件机制
- Java GUI编程中的事件处理机制详细讲解
- Java GUI编程中的事件处理机制详细讲解
- Java GUI编程中如何进行事件处理机制
- java编程之GUI事件机制之经典
- Java GUI编程(二)事件模型
- JAVA图形界面(GUI)之事件处理机制
- java中级-12-GUI图形用户界面(2)-GUI事件响应机制
- Java GUI编程(五)鼠标事件:实现画点
- GUI编程第三弹_按钮上的ActionEvent事件
- GUI事件监听机制
- Java进阶08 GUI
- Java进阶08 GUI
- Java进阶08 GUI
- BZOJ1052: [HAOI2007]覆盖问题
- 生日获取年龄
- 模板元编程第六章课后习题(非答案)20151206
- Code Forces 590 A. Median Smoothing(机智)
- 2015-12-05 Eclipse项目导入到Android Studio中时出现的一些问题
- Java进阶(GUI编程_事件机制②)
- 函数指针
- LibGDX_3.5: 精灵(Sprite)
- Android 学习路线(参考)
- 【已解决】Android Studio项目编译出错,可以运行
- button事件
- 【Material Design学习研究 一】个人对Material Design的理解和看法!
- leetcode|Add Digits
- nginx反向代理tomcat