【Java】Java绘图技术与事件处理机制
来源:互联网 发布:杀敌算法百度云 编辑:程序博客网 时间:2024/06/05 02:15
摘要:本文主要通过实例讲解Java中绘图技术与事件处理机制
// 此程序用来练习使用绘图技术! // Version:1.0 // @Author:Yongchun_zha package cha08; import java.awt.*; import javax.swing.*; public class L8_1 extends JFrame { wdmb panl=null; public static void main(String[] args) { L81 l81=new L8_1(); } public L8_1() { panl=new wdmb(); this.add(panl); this.setTitle("Layout");//设置用户界面 this.setSize(500,500);//设置窗口大小,数字代表像素 this.setLocation(300,260);//设置窗体位置 //this.setResizable(false);//设置窗体大小是否可调整 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭进程 this.setVisible(true);//true 显示,false不显示 } } class wdmb extends JPanel { public void paint(Graphics g) { //绘制图形 g.setColor(Color.CYAN);//设置颜色 g.drawOval(50, 50, 80, 80); g.drawLine(100,100,200,200); g.drawRect(100,100,200,200); g.draw3DRect(200,200,400,400,true); g.fillRect(10,10,20,20);//绘制填充图形 //绘制图像 Image tp=Toolkit.getDefaultToolkit().getImage(Panel.class.getResource("/notebook.jpg")); g.drawImage(tp,100,80,20,20,this); //注:绘图用到的图片要拷贝到src目录下 //绘制文字 g.setColor(Color.RED); g.setFont(new Font("华文彩云",Font.BOLD,50)); g.drawString("Hi,大家好",200,100); } //paint方法在以下三种情况下会被系统自动调用:①启动程序 ②窗口大小发生变化 ③调用repaint函数 }
事件监听
// 此程序用来练习使用事件监听!// Version:1.0// @Author:Yongchun_zhapackage cha08;import java.awt.*;import javax.swing.*;import java.awt.event.*;public class L8_2 extends JFrame implements ActionListener//接口实现监听{wdmb2 pa=null;JButton bon1,bon2;public static void main(String[] args){L82 l82=new L8_2();}public L8_2(){pa=new wdmb2();pa.setBackground(Color.CYAN);bon1=new JButton("红色");bon2=new JButton("蓝色");this.setLayout(new BorderLayout());this.add(bon1,BorderLayout.NORTH);this.add(bon2, BorderLayout.SOUTH);this.add(pa);bon1.addActionListener(this);//this表示监听的是本类,按需添加所需监听的类即可bon1.setActionCommand("111");//可以对多个类进行监听bon2.addActionListener(this);bon2.setActionCommand("222");this.setTitle("Layout");//设置用户界面this.setSize(500,500);//设置窗口大小,数字代表像素this.setLocation(300,260);//设置窗体位置this.setResizable(false);//设置窗体大小是否可调整this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭进程 this.setVisible(true);//true 显示,false不显示}public void actionPerformed(ActionEvent e)//接口的抽象构造函数{System.out.println("按钮起作用了!");if(e.getActionCommand().equals("111")){ System.out.println("红色红色"); pa.setBackground(Color.RED);}else if(e.getActionCommand().equals("222")){ System.out.println("蓝色蓝色"); pa.setBackground(Color.BLUE);}}}class wdmb2 extends JPanel{public void paint(Graphics g){super.paint(g);}}
键盘监听
// 此程序用来练习使用事件监听!// Version:1.0// @Author:Yongchun_zhapackage cha08;import java.awt.*;import javax.swing.*;import java.awt.event.*;public class L8_3 extends JFrame{wdmb4 pan=null;public static void main(String[] args){L83 l83=new L8_3();}public L8_3(){pan=new wdmb4();this.add(pan);this.addKeyListener(pan);this.setTitle("Layout");//设置用户界面this.setSize(500,500);//设置窗口大小,数字代表像素this.setLocation(300,260);//设置窗体位置this.setResizable(false);//设置窗体大小是否可调整this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭进程 this.setVisible(true);//true 显示,false不显示}}class wdmb4 extends JPanel implements KeyListener{int x=100, y=100;public void paint(Graphics g){super.paint(g); g.fillRect(x,y,30,30);}public void keyTyped(KeyEvent e){//有字符输出的函数}public void keyPressed(KeyEvent e){System.out.println("键盘被按下: "+(char)e.getKeyCode());if(e.getKeyCode()==KeyEvent.VK_DOWN){ System.out.println("Down"); y+=10;}else if(e.getKeyCode()==KeyEvent.VK_UP){ System.out.println("Up"); y-=10;}else if(e.getKeyCode()==KeyEvent.VK_RIGHT){ System.out.println("Right"); x+=10;}else if(e.getKeyCode()==KeyEvent.VK_LEFT){ System.out.println("Left"); x-=10;}this.repaint();}public void keyReleased(KeyEvent e){//按键抬起}}
鼠标监听
// 此程序用来练习使用鼠标监听!// Version:1.0// @Author:Yongchun_zhapackage cha08;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class L8_4 extends JFrame{wdmb5 panl=null;public static void main(String[] args){L84 l84=new L8_4();}public L8_4(){panl=new wdmb5();this.add(panl);this.addMouseListener(panl);this.addMouseMotionListener(panl);this.setTitle("Layout");//设置用户界面this.setSize(500,500);//设置窗口大小,数字代表像素this.setLocation(300,260);//设置窗体位置this.setResizable(false);//设置窗体大小是否可调整this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭进程 this.setVisible(true);//true 显示,false不显示}}class wdmb5 extends JPanel implements MouseListener,MouseMotionListener{public void paint(Graphics g){super.paint(g);}public void mouseClicked(MouseEvent e) //鼠标单击{System.out.print("鼠标点击的位置是: ");System.out.println("("+e.getX()+","+e.getY()+")");}public void mousePressed(MouseEvent e) { System.out.println("鼠标被按下");} public void mouseReleased(MouseEvent e){System.out.println("鼠标被松开");}public void mouseEntered(MouseEvent e){System.out.println("鼠标移动到界面中");}public void mouseExited(MouseEvent e) { System.out.println("鼠标离开界面");}public void mouseDragged(MouseEvent e){System.out.println("鼠标当前位置是:");System.out.println("("+e.getX()+","+e.getY()+")");}public void mouseMoved(MouseEvent e){System.out.println("鼠标当前位置是:");System.out.println("("+e.getX()+","+e.getY()+")");}}
窗口监听
// 此程序用来练习使用窗口监听!// Version:1.0// @Author:Yongchun_zhapackage cha08;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class L8_5 extends JFrame{ Wdmb6 mb=null; public static void main(String[] args) { L85 lx=new L85();}L8_5(){mb=new Wdmb6();this.add(mb);this.addWindowListener(mb);this.setSize(400,300);this.setLocation(300,280);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}}class Wdmb6 extends JPanel implements WindowListener{public void paint(Graphics g){super.paint(g);}@Overridepublic void windowOpened(WindowEvent e){System.out.println("窗口打开");}public void windowClosing(WindowEvent e){ System.out.println("窗口关闭");} public void windowClosed(WindowEvent e) {} public void windowIconified(WindowEvent e) { System.out.println("最小化");}public void windowDeiconified(WindowEvent e){System.out.println("从最小化变成正常");}public void windowActivated(WindowEvent e){System.out.println("窗口被激活");}public void windowDeactivated(WindowEvent e){}}
阅读全文
0 0
- 【Java】Java绘图技术与事件处理机制
- 绘图技术与事件处理机制---鼠标事件
- 绘图技术、事件监听 Java
- Java事件处理机制与“恋爱关系”
- java 事件处理机制
- JAVA事件处理机制
- JAVA事件处理机制
- java事件处理机制
- Java事件处理机制
- java事件处理机制
- Java- 事件处理机制
- Java- 事件处理机制
- java事件处理机制
- java事件处理机制
- java-事件处理机制
- java事件处理机制
- java 事件处理机制
- java事件处理机制
- 设计模式之责任链模式--慕课网笔记
- 组合数有关的公式及常用求和
- 「网络流 24 题」软件补丁
- struts2.5报错ClassNotFoundException: org...dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
- 【Unity】unity 人物动态头像
- 【Java】Java绘图技术与事件处理机制
- 简约而不简单的Django教程
- HTML
- python读取excel
- HDU Just do it (找规律暴力)
- linux 正向代理反向代理
- __cxa_call_unexpected原因
- 对于自编译Ueditor问题
- 【Java实战】Java实现简易坦克对战小游戏