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

📄 atmplayer.java

📁 这是孙卫琴在"Java与面向对象编程"一书的源代码。
💻 JAVA
字号:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.net.URL;

public class ATMPlayer extends JApplet implements Runnable {
  private int index=4;	//图片的索引
  private Thread changer;	//动态改变图片的线程,形成动画效果
  private boolean stopFlag=true;  //控制线程启动与关闭的标志
  private Image[] images; //存放钞票图片
  private Image mouth; //吐钞口
  private JButton contrlButton=new JButton("  开始取款! ");

  public void init() {

    images=new Image[4];
    
    //作为独立应用程序时通过以下这段代码从本地机器加载图片
    Toolkit tk=getToolkit();
    images[0]=tk.getImage(getClass().getResource("money1.jpg"));
    images[1]=tk.getImage(getClass().getResource("money2.jpg"));
    images[2]=tk.getImage(getClass().getResource("money3.jpg"));
    images[3]=tk.getImage(getClass().getResource("money4.jpg"));
    mouth=tk.getImage(getClass().getResource("mouth.jpg"));
    
/*
    //作为小应用程序时通过以下这段代码从网上下载图片
    images[0]=getImage(getCodeBase(),"money1.jpg");
    images[1]=getImage(getCodeBase(),"money2.jpg");
    images[2]=getImage(getCodeBase(),"money3.jpg");
    images[3]=getImage(getCodeBase(),"money4.jpg");
    mouth=getImage(getCodeBase(),"mouth.jpg");
*/
    contrlButton.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent e){
        if(stopFlag)start();
        else stop();
    }});

    Container contentPane=getContentPane();
    contentPane.setBackground(Color.WHITE);
    contentPane.add(contrlButton, BorderLayout.NORTH);
  }

  public void start(){
    changer=new Thread(this);
    stopFlag=false;
    index=0;
    contrlButton.setText("  够啦! ");
    changer.start();
  }

  public void paint(Graphics g) {
    super.paint(g);
    g.drawImage(mouth,100,45,this);
    synchronized(this){if(index<4)g.drawImage(images[index],107,50,this);}
  }

  public void stop(){
    stopFlag=true;
    contrlButton.setText("  开始取款! ");
  }

  public void run(){
    while(!stopFlag){
      repaint(); //The word will be redrawed with new fontSize
      try{
        if(index==3)Thread.sleep(500);
        else Thread.sleep(200);
      }catch(InterruptedException e){throw new RuntimeException(e);}

      if(++index>4) index=0;   //显示下一张照片
    }

    index=4;
    repaint();  //刷新图形
  }

  public static void main(String args[]){
    JFrame gui=new JFrame("取款机");
    ATMPlayer atm=new ATMPlayer();
    atm.init();

    gui.setContentPane(atm);
    gui.setSize(300,300);
    gui.setVisible( true );
    gui.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
  }
}


/****************************************************
 * 作者:孙卫琴                                     *
 * 来源:<<Java面向对象编程>>                       *
 * 技术支持网址:www.javathinker.org                *
 ***************************************************/

⌨️ 快捷键说明

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