📄 competition.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 + -