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

📄 competition.java

📁 Java经典例程 从外国一大学计算机教授出版物下载的代码 经典
💻 JAVA
字号:
import java.util.*;
import java.awt.*;
import java.applet.*;
import java.awt.event.*;

public class Competition extends Applet implements ActionListener {
  /*  The Competition applet     by J M Bishop Oct 1996
   *  ======================     Java 1.1 Jan 1998
   * Runs a competition screening mechanism.
   * Illustrates interaction between an applet
   * and a web page.
   */

  private static int winningScore;
  private TextField targetField, nameField,
          lettersField, valuesField, scoreField, resultField;
  private Button againButton;
  private Hashtable values = new Hashtable ();
  private String openingMessage = "See if your name is a winner!";
  private static final int lettersCounted = 20;
  String  letters [] = {"a","b","c","d","e","f","g","h","i","j",
          "k","l","m","n","o","p","q","r","s","t","u","v","w",
          "x","y","z"};

  public void init () {

    // First, generate the letter values and
    // Create the hash table by using values in the
    // PARAM tags of the web page.
    // Both the key and value are strings.

    winningScore = Integer.parseInt(getParameter("Score"));
    for (int i = 0; i<26; i++)
      values.put(letters[i], getParameter(letters[i]));

    // draw the user interface
    setLayout (new BorderLayout ());

    Panel p = new Panel ();
      Font g = new Font("SanSerif",Font.PLAIN,12);
        p.setFont(g);
      nameField = new TextField ("",40);
        p.add (new Label ("Your name is?"));
        p.add (nameField);
        nameField.addActionListener(this);
      Panel r = new Panel();
        Font h = new Font("Monospaced",Font.PLAIN,12);
        r.setLayout(new GridLayout(2,2));
        lettersField = new TextField("",20);
          lettersField.setEditable(false);
          r.add(new Label("Letters used:"));
          r.add (lettersField);
          lettersField.setFont(h);
        valuesField = new TextField("",20);
          valuesField.setEditable(false);
          r.add(new Label("Their values are:"));
          r.add (valuesField);
          valuesField.setFont(h);
      p.add(r);
      targetField = new TextField
                    (Integer.toString(winningScore),4);
        targetField.setEditable(false);
        p.add (new Label ("Magic score"));
        p.add (targetField);
      scoreField = new TextField ("",4);
        p.add (scoreField);
        p.add (new Label ("Your score"));
        scoreField.setEditable(false);
    add ("Center", p);

    Panel q = new Panel ();
      resultField = new TextField (openingMessage);
        resultField.setEditable(false);
        Font f = new Font("Serif",Font.BOLD,20);
        resultField.setFont(f);
        q.add (resultField);
      againButton = new Button("Again");
        q.add (againButton);
        againButton.addActionListener(this);
    add ("South", q);
 }

  public void actionPerformed (ActionEvent evt) {
    Object source = evt.getSource();

    // Again resets everything. It is always available
    if (source == againButton) {
      nameField.setText("");
      scoreField.setText("");
      resultField.setText(openingMessage);
    }

    // A name was entered
    else
      handleName();
}

  void handleName() {
    char c [];
    char d [] = new char[lettersCounted];
    char e [] = new char[lettersCounted];

    // Convert name to lower case and strip blanks
    c = nameField.getText().trim().toLowerCase().toCharArray();
    int n=0;
    for (int i=0; i<c.length & n<lettersCounted; i++) {
      if (Character.isLetter(c[i])) {
        d[n] = c[i];
        n++;
      }
      if (i==c.length-1) i=-1;
    }

    // The stripped down array is now in d[0] to d[n]
    // and we put the corresponding values in e[].
    int total = 0;
    for (int i=0; i<n; i++) {
       String s = (String) values.get(String.valueOf(d[i]));
       e[i] = s.charAt(0);
       total += Integer.parseInt(s);
    }

    // Calculate and compare the score. Display a message.
    scoreField.setText(Integer.toString(total));
    lettersField.setText(String.valueOf(d));
    valuesField.setText(String.valueOf(e));
    if (total == winningScore)
      resultField.setText("Good luck in the lucky draw");
    else
      resultField.setText("Bad luck! Try again next week");
  }

}

⌨️ 快捷键说明

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