【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){}}

原创粉丝点击