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

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

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

    隨筆 - 63  文章 - 0  trackbacks - 0
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    圖像顯示

    1 使用Graphics.drawImage(Image img, int x, int y, ImageObserver observer)
    方法顯示圖像。


    2 使用Component.getToolkit.getImage(String path)語句獲得Image實例對象。

    例:
    package drawimage;

    import java.awt.Frame;
    import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;

    public class DrawImage extends Frame
    {
        private static final long serialVersionUID = 1L;
     
        public DrawImage()
     {
       this.addWindowListener(new WindowAdapter()
          {
           public void windowClosing(WindowEvent e)
           {
            dispose();
            System.exit(0);
           }
       
           });
     }
     public static void main(String[] args)
     {
      System.out.println("Starting DrawImage.");
      DrawImage mainFrame = new DrawImage();
      Image img = mainFrame.getToolkit().getImage("love.jpg");
      
      mainFrame.setSize(400,400);
      mainFrame.setTitle("DrawImage");
      mainFrame.setVisible(true);
      Graphics g = mainFrame.getGraphics();
      while(!g.drawImage(img,150,150,mainFrame));
      
     

     }

    }

     

    圖像重畫


    package drawimage;

    import java.awt.Frame;
    import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;

    public class DrawImage extends Frame
    {
     Image img = getToolkit().getImage("love.jpg");
        private static final long serialVersionUID = 1L;
     public void paint(Graphics g)
     {
      g.drawImage(img,0,0,this);
     }
        public DrawImage()
     {
       this.addWindowListener(new WindowAdapter()
          {
           public void windowClosing(WindowEvent e)
           {
            dispose();
            System.exit(0);
           }
       
           });
     }
     public static void main(String[] args)
     {
      System.out.println("Starting DrawImage.");
      DrawImage mainFrame = new DrawImage();
      
      mainFrame.setSize(400,400);
      mainFrame.setTitle("DrawImage");
      mainFrame.setVisible(true);
      /*Graphics g = mainFrame.getGraphics();
      while(!g.drawImage(img,150,150,mainFrame));
      */
     

     }

    }

     

     

     

     

     

     

     


    雙緩沖技術:

    1  Component.createImage方法創建內存Image對象
    2  在Image對象上進行繪制的結果就成了一幅圖像
    3  在Image對象上執行與組件表面同樣的繪制,Image
         對象中的圖像就是組件表面內容的復制,當組件重畫    時,只需要將內存中的Image對象在組件上畫出;

    package drawline;

    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.Font;
    import java.awt.Frame;
    import java.awt.Graphics;
    import java.awt.Image;
    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 DrawLine1 extends Frame
    {
     int orgX;
     int orgY;
     int endX;
     int endY;
     Image oimg = null;
     Graphics og = null;
     Vector<MyLine> vLines = new Vector<MyLine>();
     
     public void paint(Graphics g)
     {
      if(oimg != null)
      {
        g.drawImage(oimg,0,0,this);
      }
      /*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 DrawLine1()
     {
      setSize(400,400);
      setTitle("Drawline");
      setVisible(true);
      
      Dimension d = getSize();
      oimg = createImage(d.width,d.height);
      og = oimg.getGraphics();
      
         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());
           
           og.setColor(Color.RED);
           og.setFont(new Font(null,Font.ITALIC|Font.BOLD,30));
           og.drawString(orgX + "," + orgY,orgX,orgY);
           og.drawString(e.getX() + "," + e.getY(), e.getX(),e.getY());
           og.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");
       new DrawLine1();
      
      
      
     }
    }

    //構建主框架對象時是先調用paint()還是構造函數

     

    posted @ 2008-08-10 21:37 lanxin1020 閱讀(178) | 評論 (0)編輯 收藏

     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 @ 2008-08-10 07:51 lanxin1020 閱讀(266) | 評論 (0)編輯 收藏
    初學警示:


    面向對象編程思想:
    編程人員腦海里面想的問題應該是:程序運行時的各個時刻的各個對象的內存布局和變化狀態,以及每行代碼執行后對這些對象產生的影響。而非頂住程序中靜止不變的代碼,孤立的琢磨每條語句的語法是否正確。
    posted @ 2008-08-07 15:53 lanxin1020 閱讀(157) | 評論 (0)編輯 收藏
    僅列出標題
    共7頁: 上一頁 1 2 3 4 5 6 7 
    主站蜘蛛池模板: 精品一区二区三区免费观看 | 91免费在线播放| 男女啪啪免费体验区| 亚洲毛片一级带毛片基地| 亚洲宅男天堂在线观看无病毒| 在线免费观看一级毛片| 99久久免费精品视频| 最近免费中文字幕中文高清 | 国产男女猛烈无遮挡免费视频| 久久ww精品w免费人成| 久久精品成人免费国产片小草| 色九月亚洲综合网| 97久久国产亚洲精品超碰热| 337p欧洲亚洲大胆艺术| 国产亚洲精AA在线观看SEE| 亚洲人妻av伦理| 亚洲 综合 国产 欧洲 丝袜| 免费高清小黄站在线观看| 一二三四影视在线看片免费| 免费国产黄网站在线观看可以下载| yellow免费网站| 欧洲乱码伦视频免费国产 | 在线精品一卡乱码免费| 暖暖免费日本在线中文| a毛片在线免费观看| 国产黄色免费观看| 成年网站免费入口在线观看| AV激情亚洲男人的天堂国语| 亚洲日韩一区二区三区| 亚洲五月综合网色九月色| 亚洲无人区视频大全| 亚洲人成黄网在线观看| 亚洲天堂一区二区三区四区| 亚洲精品中文字幕乱码| 中文字幕在线观看亚洲| 亚洲视频一区在线播放| 亚洲神级电影国语版| 亚洲国产精品日韩在线观看 | 亚洲美女免费视频| 成人免费在线看片| 最近免费中文字幕大全|