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

📄 pinballpanel.java

📁 一些JAVA的小程序
💻 JAVA
字号:
import java.awt.event.*;import java.util.Vector;import javax.swing.*;import java.awt.*;public class PinBallPanel extends JPanel {  private Vector balls;   //A vector to hold balls  private PinBallFire fireButton = new PinBallFire(new Point(PinBallGame.FrameWidth-40, PinBallGame.FrameHeight-70));  public PinBallPanel(){      balls = new Vector();      addMouseListener(new MouseKeeper());      score = 0;      scoreLabel = new Label("Score = 0      ");      targets = new Vector();      targets.addElement(new Wall(30, 50, 2, 350));      targets.addElement(new Wall(30, 50, 360, 2));      targets.addElement(new Wall(390, 50, 2, 380));      targets.addElement(new Hole(100, 100));      targets.addElement(new ScorePad(150, 220, 100));      targets.addElement(new Peg(300, 140, 200));      targets.addElement(new Spring(120, 350));      add("North", scoreLabel);  }  private int score = 0;  private Label scoreLabel = new Label("Score = 0");  private Vector targets;   public void addScore (int v){      score = score + v;      scoreLabel.setText("Score = " + score);   }  private class MouseKeeper extends MouseAdapter{   private PinBallTarget element;   public void mousePressed (MouseEvent e) {       element = null;      int x = e.getX();      int y = e.getY();      if (fireButton.includes(x, y))         balls.addElement(fireButton.fire(x, y));      if (x < 40) { //each target occupies a 40 by 40 pixel box         switch (y / 40) {            case 2: element = new Hole(0, 0); break;            case 3: element = new Peg(0, 0, 100); break;            case 4: element = new Peg(0, 0, 200); break;            case 5: element = new ScorePad(0, 0, 100); break;            case 6: element = new ScorePad(0, 0, 200); break;            case 7: element = new Spring(0, 0); break;            case 8: element = new Wall(0, 0, 2, 15); break;	}	}	}   public void mouseReleased (MouseEvent e) {      int x = e.getX(); // only perform release action if mouse is      int y = e.getY(); // released on playing surface      if ((element != null) && (x > 50)) {         element.moveTo(x, y);         targets.addElement(element);         repaint();      }   }   }  public void run() {    while (true) {      moveBalls();      repaint();      try {        Thread.sleep(10);      } catch(InterruptedException e) {System.exit(0);}    }  }  private void moveBalls() {    for (int i = 0; i < balls.size(); i++) {      PinBall theBall = (PinBall) balls.elementAt(i);      if (theBall.y() < PinBallGame.FrameHeight){        theBall.move();        for (int j = 0; j < targets.size(); j++) {	  PinBallTarget target =            (PinBallTarget) targets.elementAt(j);          if (target.intersects(theBall)) target.hitBy(theBall);        };      } else {        balls.removeElement(theBall);      }    }  }  public void paintComponent(Graphics g) {    super.paintComponent(g); //clear window    fireButton.paint(g);    for (int i = 0; i < balls.size(); i++) {      Ball aBall = (Ball) balls.elementAt(i);      aBall.paint(g);    }    for (int j = 0; j < targets.size(); j++) {      PinBallTarget target = (PinBallTarget) targets.elementAt(j);      target.paint(g);    }  }}

⌨️ 快捷键说明

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