<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 63  文章 - 0  trackbacks - 0
    <2008年8月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    31123456

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

     Graphics類與圖形繪制
    Componentp.getGraphics方法與Grahpics類

    Graphics.drawLine(int x1,int y1,int x2, int y2)方法;
    Graphics.drawStringString str,int x,int y)方法;
    Graphics.drawSting方法的坐標參數是以坐下方為參考點的;


    例:

    package drawline;

    import java.awt.Color;
    import java.awt.Font;
    import java.awt.Frame;
    import java.awt.Graphics;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;


    public class DrawLine extends Frame {

     private static final long serialVersionUID = 9004940250333651314L;

     public DrawLine()
     {
      this.addWindowListener(new WindowAdapter()
         {
          public void windowClosing(WindowEvent e) {
           dispose();
           System.exit(0);
          }
       
         });
      
      this.addMouseListener(new MouseAdapter()
         {
          
          int orgX;
          int orgY;
          public void mousePressed(MouseEvent e)
          {
           orgX = e.getX();
           orgY = e.getY();
           
          }
          public void mouseReleased(MouseEvent e)
          {
           Graphics g = getGraphics();
           g.setColor(Color.RED);
           g.setFont(new Font(null,Font.ITALIC|Font.BOLD,30));
           g.drawString(orgX + "," + orgY,orgX,orgY);
           g.drawString(e.getX() + "," + e.getY(), e.getX(),e.getY());
           g.drawLine(orgX, orgY, e.getX(),e.getY());
           
          }//為什么用getGraphics().setColor(Color.RED)是不用導java.awt.Graphics包
          
          
         });
     }

     public static void main( String[] args) {
      System.out.println("String DrawLine");
      DrawLine mainFrame = new DrawLine();
      mainFrame.setSize(400,400);
      mainFrame.setTitle("Drawline");
      mainFrame.setVisible(true);
      
      
     }
    }

    組件重建的處理:

    1 組件重繪的原理  曝光
    2 paint(Graphics g)的作用

    AWT組件重繪路線:
    AWT Thread ->paint() ->AWT Thread
    repaint()+AWT Thread ->update(清除組件表面內容調用paint()方法)->paint();

    例:
    package drawline;

    import java.awt.Color;
    import java.awt.Font;
    import java.awt.Frame;
    import java.awt.Graphics;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import java.util.Enumeration;
    import java.util.Vector;


    public class DrawLine extends Frame
    {
     int orgX;
     int orgY;
     int endX;
     int endY;
     Vector<MyLine> vLines = new Vector<MyLine>();
     
     public void paint(Graphics g)
     {
      g.setColor(Color.RED);
      g.setFont(new Font(null,Font.ITALIC|Font.BOLD,30));
      Enumeration<MyLine> e = vLines.elements();
      while(e.hasMoreElements())
      {
       MyLine line = (MyLine)e.nextElement();
      line.drawMe(g);
      }
      //g.drawLine(orgX, orgY, endX, endY);
     }
     private static final long serialVersionUID = 9004940250333651314L;

     public DrawLine()
     {
      
      this.addWindowListener(new WindowAdapter()
         {
          public void windowClosing(WindowEvent e) {
           dispose();
           System.exit(0);
          }
       
         });
      
      this.addMouseListener(new MouseAdapter()
         {
          
          
          public void mousePressed(MouseEvent e)
          {
           orgX = e.getX();
           orgY = e.getY();
           
          }
          public void mouseReleased(MouseEvent e)
          {
           endX = e.getX();
           endY = e.getY();
           /*Graphics g = getGraphics();
           g.setColor(Color.RED);
           g.setFont(new Font(null,Font.ITALIC|Font.BOLD,30));
           g.drawString(orgX + "," + orgY,orgX,orgY);
           g.drawString(e.getX() + "," + e.getY(), e.getX(),e.getY());
           g.drawLine(orgX, orgY, e.getX(),e.getY());
           */
           vLines.add(new MyLine(orgX,orgY,endX,endY));
           repaint();
          }//為什么用getGraphics().setColor(Color.RED)是不用導java.awt.Graphics包
          //Enumeration<MyLine>???????????????????????????
          
          
         });
     }

     public static void main( String[] args) {
      System.out.println("String DrawLine");
      DrawLine mainFrame = new DrawLine();
      mainFrame.setSize(400,400);
      mainFrame.setTitle("Drawline");
      mainFrame.setVisible(true);
      
      
     }
    }


    package drawline;

    import java.awt.Graphics;


    public class MyLine
    {
     private int orgX;
     private int orgY;
     private int endX;
     private int endY;
     public MyLine(int orgX, int orgY, int endX, int endY)
     {
      this.orgX = orgX;
      this.orgY = orgY;
      this.endX = endX;
      this.endY = endY;
     }
     
     
     public void drawMe(Graphics g)
     {
      System.out.println(orgX + "," + orgY + " "+endX + "," + endY);
      g.drawString(orgX + "," + orgY,orgX,orgY);
      g.drawString(endX + "," + endY,endX,endY);
      g.drawLine(orgX, orgY, endX, endY);
     }
     
     

    }

    posted on 2008-08-10 07:51 lanxin1020 閱讀(266) 評論(0)  編輯  收藏 所屬分類: j2se
    主站蜘蛛池模板: 亚洲6080yy久久无码产自国产 | 亚洲AV中文无码字幕色三| 亚洲精品无码成人片久久不卡| 亚洲一区免费视频| 亚洲日韩图片专区第1页| 人妻丰满熟妇无码区免费 | 亚洲国产精品一区二区三区久久| 亚洲aⅴ无码专区在线观看春色| 日韩视频在线免费观看| 日韩国产欧美亚洲v片| 免费大香伊蕉在人线国产| 免费播放国产性色生活片| 亚洲日韩在线第一页| 国产特黄特色的大片观看免费视频 | 午夜亚洲av永久无码精品| 成人在线免费视频| 亚洲愉拍99热成人精品热久久| a级毛片免费高清毛片视频| 亚洲国产精品无码专区影院| 91精品视频在线免费观看| 亚洲国产成人无码av在线播放| 久久不见久久见免费影院 | 亚洲中文字幕久久精品蜜桃| 国产又黄又爽又猛的免费视频播放 | 3d成人免费动漫在线观看| 亚洲国产精品综合久久2007| 日本免费网站观看| 亚洲一级片免费看| 亚洲白嫩在线观看| 永久在线毛片免费观看| 国产黄在线播放免费观看| 亚洲视频网站在线观看| 特级淫片国产免费高清视频| 国产精品免费视频观看拍拍| 久久精品国产亚洲香蕉| 国产免费av片在线看| aa级毛片毛片免费观看久| 91情国产l精品国产亚洲区| 在线观看亚洲免费视频| 182tv免费视频在线观看| 国产午夜亚洲精品国产|