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

📄 click3.java

📁 java语言规范
💻 JAVA
字号:
/* * Copyright 2002 Sun Microsystems, Inc. All  Rights Reserved. *   * Redistribution and use in source and binary forms, with or  * without modification, are permitted provided that the following  * conditions are met: *  * -Redistributions of source code must retain the above copyright   *  notice, this list of conditions and the following disclaimer. *  * -Redistribution in binary form must reproduce the above copyright  *  notice, this list of conditions and the following disclaimer in  *  the documentation and/or other materials provided with the  *  distribution. *   * Neither the name of Sun Microsystems, Inc. or the names of  * contributors may be used to endorse or promote products derived  * from this software without specific prior written permission. *  * This software is provided "AS IS," without a warranty of any  * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND  * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY  * EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY  * DAMAGES OR LIABILITIES  SUFFERED BY LICENSEE AS A RESULT OF OR  * RELATING TO USE, MODIFICATION OR DISTRIBUTION OF THE SOFTWARE OR  * ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE  * FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT,  * SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER  * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF  * THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. *   * You acknowledge that Software is not designed, licensed or  * intended for use in the design, construction, operation or  * maintenance of any nuclear facility.  */import java.awt.*;import java.awt.event.*;import java.applet.*;/* * The final version of the Click applet adds some additional logic * to make a pathetic little game out of the parts we've assembled. * Note that we've made a significant change to the TargetListener * class: it's no longer static.  As an ordinary nested class it has * access to the currentTarget field which it writes each time the * mouse enters or exits a target.  The MouseListener called shootTarget * reads this field when the user clicks the mouse. *  * This applet runs correctly in HotJava, it requires JDK 1.1. */public class Click3 extends Applet{  Color puckColor = new Color(200, 0, 10);  Box puck = new Box(puckColor);  ColumnOfBoxes[] targets = new ColumnOfBoxes[8];  ColumnOfBoxes currentTarget;  private final class TargetListener     extends MouseAdapter implements MouseMotionListener  {    private Color newBackground;    private Color oldBackground;    TargetListener(Color newBackground) {      this.newBackground = newBackground;    }    public void mouseEntered(MouseEvent e) {      oldBackground = e.getComponent().getBackground();      e.getComponent().setBackground(newBackground);      currentTarget = (ColumnOfBoxes)(e.getComponent());    }    public void mouseExited(MouseEvent e) {      e.getComponent().setBackground(oldBackground);      currentTarget = null;    }    private void redispatch(MouseEvent e) {      Point origin = e.getComponent().getLocation();      e.translatePoint(origin.x, origin.y);      e.getComponent().getParent().dispatchEvent(e);    }    public void mouseMoved(MouseEvent e) {  redispatch(e); }    public void mouseDragged(MouseEvent e) { redispatch(e); }    public void mouseClicked(MouseEvent e) { redispatch(e); }  }  public Click3()  {    MouseMotionListener movePuck = new MouseMotionAdapter() {      public void mouseMoved(MouseEvent e)      {	int x = e.getX() - (puck.getSize().width / 2);	int y = getSize().height - puck.getSize().height;	puck.setLocation(x, y);      }    };    MouseListener shootTarget = new MouseAdapter() {      public void mouseClicked(MouseEvent e)      {	if (currentTarget != null) {	  int nBoxes = currentTarget.getComponentCount();	  if (nBoxes == e.getClickCount()) {	    currentTarget.removeAll();	    currentTarget.getToolkit().beep();	    currentTarget.repaint();	  }	}      }    };    for(int i = 0; i < targets.length; i++) {      int nBoxes = 1 + (int)(Math.random() * 4.0);      float boxHue = (float)i / (float)targets.length;      Color boxColor = Color.getHSBColor(boxHue, 0.5f, 0.85f);      TargetListener tl = new TargetListener(boxColor.brighter());      targets[i] = new ColumnOfBoxes(boxColor, nBoxes);      targets[i].addMouseListener(tl);      targets[i].addMouseMotionListener(tl);      add(targets[i]);    }    add(puck);    addMouseMotionListener(movePuck);    addMouseListener(shootTarget);  }  public static void main(String[] args)  {    WindowListener l = new WindowAdapter()      {	public void windowClosing(WindowEvent e) {System.exit(0);}      };    Frame f = new Frame("Click");    f.addWindowListener(l);     f.add(new Click3());    f.setSize(600, 400);    f.show();  }  public String getAppletInfo()   {     return "Click3 by Hans Mueller. The final version of the Click applet adds some additional logic to make a pathetic little game out of the parts we've assembled.  Note that we've made a significant change to the TargetListener class: it's no longer static.  As an ordinary nested class it has access to the currentTarget field which it writes each time the mouse enters or exits a target.  The MouseListener called shootTarget reads this field when the user clicks the mouse.  This applet requires JDK 1.1.";  }    public String[][] getParameterInfo() {    return null;  }     }

⌨️ 快捷键说明

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