ANButton.zip

  • 管理员
    了解作者
  • Java
    开发工具
  • 22KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 10 积分
    下载积分
  • 792
    下载次数
  • 2001-01-16 15:09
    上传日期
逐渐突起的动化图形按钮
ANButton.zip
  • www.pudn.com.txt
    218B
  • baum0.jpg
    1.3KB
  • ANButton.java
    8.1KB
  • baum2.jpg
    1.3KB
  • baum4.jpg
    1.2KB
  • baum1.jpg
    1.4KB
  • baumd.jpg
    1.4KB
  • ANButton.class
    4.9KB
  • baum.jpg
    1.6KB
  • ANButton.htm
    34KB
  • baum3.jpg
    1.3KB
  • baum5.jpg
    1.2KB
内容介绍
/* ANButton.java Version 1.0.0 "Written" by Florian Hars, 14-FEB-1996. ANButton.class loads up to 10 images. Images 3 to 9 are dispayed in a sequence when the pointer in located over the button, image0 (if present) is the normal apperance, image1 is the Background and image2 is the depressed button. The parameters image1, image2 and image3 are required. "Writing" it means adding a thread taken from the Animator.java-example to: BFButton.java Version 1.0.0 Written by Elijah Dean Meeker 1/4/96 BFButton.class(stands for Background/Foreground)is an preloading interactive button that loads two or three images (based on whether or not image0 is a parameter) and a background image. Clicking it navigates to the given URL. It uses off-screen buffering to avoid flicker. Here are two valid applet tags: Two states: <aPPLET codebase="classes" CODE="ANButton.class" WIDTH=130 HEIGHT=98 rel='nofollow' onclick='return false;'> SIZE of button images <PARAM NAME="image1" VALUE="images/tvbg.jpg"> BACKGROUND image <PARAM NAME="image2" VALUE="images/tvdn.jpg"> DOWN image <PARAM NAME="image3" VALUE="images/tvup1.jpg"> UP image(s) ... <PARAM NAME="image9" VALUE="images/tvup9.jpg"> <PARAM NAME="pause" VALUE="200"> Pause between images in ms (optinal, defaults to 200) <PARAM NAME="x" VALUE="19"> LEFT pos. to draw sub-images <PARAM NAME="y" VALUE="19"> TOP pos. to draw sub-images <PARAM NAME="dest" VALUE="http://www.math.uni-hamburg.de/~fm5a014/">URL to navigate to </APPLET> Three states: <aPPLET codebase="classes" CODE="ANButton.class" WIDTH=130 HEIGHT=98 rel='nofollow' onclick='return false;'> SIZE of button images <PARAM NAME="image0" VALUE="images/tvrg.jpg"> NORMAL image <PARAM NAME="image1" VALUE="images/tvbg.jpg"> BACKGROUND image <PARAM NAME="image2" VALUE="images/tvdn.jpg"> DOWN image <PARAM NAME="image3" VALUE="images/tvup.jpg"> UP image(s) ... <PARAM NAME="image9" VALUE="images/tvup9.jpg"> <PARAM NAME="pause" VALUE="200"> Pause between images in ms (optinal, defaults to 200) <PARAM NAME="x" VALUE="19"> LEFT pos. to draw sub-images <PARAM NAME="y" VALUE="19"> TOP pos. to draw sub-images <PARAM NAME="dest" VALUE="http://www.math.uni-hamburg.de/~fm5a014/">URL to navigate to </APPLET> Please feel free to use and improve this code. It would not be here but for the freely given help of others. I would love to see your improvements. Elijah. elijah@bga.com http://www.realtime.net/~elijah/ The same things are valid for me. Florian. hars@math.uni-hamburg.de http://www.math.uni-hamburg.de/~fm5a014 */ import java.awt.* ; //import java.awt.Graphics; //import java.awt.Event; //import java.awt.Image; import java.awt.MediaTracker; import java.net.URL; import java.net.MalformedURLException; import java.lang.InterruptedException; import java.applet.Applet; public class ANButton extends java.applet.Applet implements Runnable{ private MediaTracker tracker; private Image buf; private Image bg; private Image img[] = new Image[10]; private int X,Y; private Graphics offscreen; private Dimension d; private boolean onButt = false; private boolean pressedButt = false; private boolean three_state = true; private boolean userPause = true; private int onIs = 0; private int animImg = 3; private int maxImg = 3; private int pause = 200; private URL clickDest; private String dest; private String destDefault = "http://www.math.uni-hamburg.de/math/ign/"; /** * The thread animating the images. */ private Thread engine = null; /****************************STATE CHANGES*************************************/ public void init() { String istr; d = size(); buf= createImage(d.width,d.height); offscreen = buf.getGraphics(); int i = 0; boolean finished = false; tracker = new MediaTracker(this); while (!finished && i<10) { istr = getParameter("image"+i); if (istr == null){ if(i>0){ finished = true; }else{ three_state = false; onIs = 3; } }else{ if (i==0) { three_state = true; } showStatus("Loading image "+istr+"."); img[i] = getImage(getCodeBase(),istr); tracker.addImage(img[i], 0); try { tracker.waitForAll(); } catch (InterruptedException e) { System.out.println("Error waiting for image"+i+" to load"); }//end catch }//end if i++; }//end while maxImg = i-2; if (maxImg < 3) { System.out.println("Need at least images 1 to 3: Check Applet Tag."); for (i = maxImg + 1; i < 4 ; i++) { img[i]=img[1]; } maxImg = 3; } istr = getParameter("x"); X = (istr != null) ? Integer.parseInt(istr) : 0; istr = getParameter("y"); Y = (istr != null) ? Integer.parseInt(istr) : 0; istr = getParameter("pause"); pause = (istr != null) ? Integer.parseInt(istr) : 200; istr = getParameter("dest"); dest = (istr != null) ? istr : destDefault; try{ clickDest = new URL(dest); }catch(MalformedURLException mal){ System.out.println("Malformed URL: Check Applet Tag."); } }//end init public void start(){ if (engine == null && !userPause) { engine = new Thread(this); engine.start(); } }//end start public void stop(){ if (engine != null && engine.isAlive()) { engine.stop(); } engine = null; }//end stop public void destroy(){ }//end destroy /****************************END STATE CHANGES********************************/ /*******************************EVENTS****************************************/ public boolean mouseDown(Event e, int x, int y){ if (engine != null && engine.isAlive()) { userPause = true; engine.suspend(); stopPlaying(); } pressedButt = true; repaint(); return(true); }//end mouseDown public boolean mouseUp(Event e, int x, int y){ if(pressedButt && onButt){ pressedButt = false; repaint(); getAppletContext().showDocument(clickDest); }else{ pressedButt = false; repaint(); } return(true); }//end mouseUp public boolean mouseEnter(Event e, int x, int y){ onButt = true; userPause = false; if (engine != null && engine.isAlive()) { engine.resume(); startPlaying(); } else { engine = new Thread(this); engine.start(); startPlaying(); } repaint(); showStatus(dest); return(true); }//end mouseEnter public boolean mouseExit(Event e, int x, int y){ onButt = false; userPause= true; if (engine != null && engine.isAlive()) { engine.suspend(); stopPlaying(); } repaint(); showStatus(""); return(true); }//end mouseExit /*******************************END EVENTS*************************************/ /*******************************METHODS****************************************/ void startPlaying() { } void stopPlaying() { } public void run() { Thread me = Thread.currentThread(); me.setPriority(Thread.MIN_PRIORITY); while (engine == me) { try { Thread.sleep(pause); } catch (InterruptedException e) { // Should we do anything? } animImg += 1; if (animImg > maxImg) { animImg=3; } repaint(); } } public void update(Graphics g){ if(!onButt) { if(three_state) { onIs = 0; } else { onIs = 3; } } else if (onButt && !pressedButt) { onIs = 3; } else { onIs = 2; } paint(g); }//end update public void paint(Graphics g){ if (offscreen != null) { paintApplet(offscreen); g.drawImage(buf, 0, 0, this); } else { paintApplet(g); } }//end paint public void paintApplet(Graphics
评论
    相关推荐
    • dongtaituxing-an-niu.zip
      能够简单的实现动态图形按钮,让你的界面更美观
    • 点击窗体按钮生成级联图形菜单的程序代码
      内容索引:VC/C++源码,界面编程,窗体,图形菜单,级联 通过点击窗体上的个别按钮,可以弹出类似WINDOW菜单一样的级联菜单,并且弹出的这个菜单还可以用图像去作为列表项,这样做出的菜单就更美观生动了。
    • MFC带图形按钮控件
      MFC带图形按钮控件,包含头文件和CPP文件就可以使用。派生自CButton类。所给的文件是一个MFC工程,不妨先运行试试看看效果!
    • LINUX 经典GTK图形编程
      非常经典的教材,示例也很不错,希望对大家有帮助。
    • VC++界面仿MSN(图形按钮
      VC界面仿MSN 图形按钮 各种控件图形美化
    • 计算机图形学课程设计
      • 菜单按钮均加入了快捷方式,可以用ALT加1,2,3,4,5 数字键打开菜单。 • 实验一:实现一个简单计算器。 • 实验二:实现鼠标交互法二维直线段的逐点和bressenham画法。 按要求实现画虚线方法。 • 实验三:...
    • java图形实例大全
      Swing按钮 Swing动画 单位转换器 温度转换器 文件对话框 投票器 Swing菜单按钮计数器
    • 图形界面-排序
      这是一个简单的java图形界面程序,用以在文本框里把几个数排序。
    • 计算机图形学代码
      这是用C++6.0中MFC单文档做的,主要代码跟课本上的一样。你建好相关的下拉按钮之后,再建立类向导,就可以把相应的代码复制进去了。这里提供整个MFC文档,希望你们自己慢慢研究咯。
    • 测试图形按钮.rar
      控件图片显示,控件按下抬起函数响应,指定矩形范围刷新控件