⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 scroller.java

📁 java applet 非常全的实例。比较利于初学者进行研究。
💻 JAVA
字号:
import java.awt.*;import java.applet.*;public class Scroller extends Applet {   private Scrollbar vscroll;   private Scrollbar hscroll;   private MyCanvas canvas;   private String name;   private int imgW,imgH;   public void init() {      Image img;      String param;      MediaTracker imageTracker;              imageTracker  = new MediaTracker(this);              param = getParameter("image");      if(param!=null)         name = param;      img = getImage(getCodeBase(), name);      imageTracker.addImage(img,0);              try{         imageTracker.waitForID(0);      }catch (InterruptedException e){}            imgW = img.getWidth(this);      imgH = img.getHeight(this);      canvas = new MyCanvas(img,imgW,imgH);      hscroll = new Scrollbar(Scrollbar.HORIZONTAL);      vscroll = new Scrollbar(Scrollbar.VERTICAL);      setLayout(new BorderLayout());      add("Center", canvas);      add("East", vscroll);      add("South", hscroll);      validate();      R_hor();      R_ver();   }   public boolean handleEvent(Event evt) {      switch (evt.id) {         case Event.SCROLL_LINE_UP:         case Event.SCROLL_LINE_DOWN:         case Event.SCROLL_PAGE_UP:         case Event.SCROLL_PAGE_DOWN:         case Event.SCROLL_ABSOLUTE:         if (evt.target == vscroll) {            canvas.dy = ((Integer)evt.arg).intValue();            canvas.repaint();         }         if (evt.target == hscroll) {            canvas.dx = ((Integer)evt.arg).intValue();            canvas.repaint();         }      }      return super.handleEvent(evt);   }   void R_hor() {      int canvasW = canvas.size().width;      if (canvasW <= 0) {         return;      }      if ((canvas.dx + canvasW) > imgW) {         int newtx = imgW - canvasW;         if (newtx < 0) {            newtx = 0;         }         canvas.dx = newtx;      }      hscroll.setValues(canvas.dx, (int)(canvasW * 0.9), 0, imgW- canvasW);      hscroll.setPageIncrement((int)(canvasW * 0.9));      return;   }     void R_ver() {      int canvasH = canvas.size().height;      if (canvasH <= 0) {         return;      }      if ((canvas.dy + canvasH) > imgH) {         int newty = imgH - canvasH;         if (newty < 0) {            newty = 0;         }         canvas.dy = newty;      }      vscroll.setValues(canvas.dy,(int)(canvasH * 0.9), 0,imgH - canvasH);      vscroll.setPageIncrement((int)(canvasH * 0.9));      return;   }   public void paint(Graphics g) {      R_hor();      R_ver();      return;    }}class MyCanvas extends Canvas {   Image image,buffer;   Graphics grap;   int dx = 0;   int dy = 0;   int width;   int height;   MyCanvas(Image img,int w,int h){      MediaTracker imageTracker;      imageTracker = new MediaTracker(this);      image = img;      width = w;      height = h;      imageTracker.addImage(image,0);      try{         imageTracker.waitForID(0);      }catch (InterruptedException e){}   }   public void update(Graphics g){      paint(g);   }   public void paint(Graphics g) {      buffer = createImage(image.getWidth(this),image.getHeight(this));      grap = buffer.getGraphics();      grap.translate(-dx, -dy);      grap.drawImage(image,0,0,this);      g.drawImage(buffer, 0, 0, getBackground(), this);   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -