java 猜数字(源码)

代码:

//MsgDlg.java
package java_class.Guess;

import java.awt.Button;
import java.awt.Frame;
import java.awt.Label;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

class MsgDlg extends Frame implements ActionListener {
    Label label = new Label();
    public MsgDlg(String strMsg) {
        super();
        setResizable(false);
        setTitle("猜的结果");
        Panel p = new Panel();
        add(p);
        p.add(label);
        label.setText(strMsg);
        setSize(200, 60);
        setLocation(
        (int)java.awt.Toolkit.getDefaultToolkit().getScreenSize().width/2-100,
        (int)java.awt.Toolkit.getDefaultToolkit().getScreenSize().height/2-50);
        Button btOk = new Button("确定");
        btOk.addActionListener(this);
        p.add(btOk);
        setVisible(true);
    }
    public void actionPerformed(ActionEvent evt) {
        this.dispose();
    }
}

//lucky.java
package java_class.Guess;

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class Guess extends Applet implements ActionListener {
    Panel pNorth = new Panel();
    Panel pNum = new Panel();
    Panel pBottom = new Panel();
    TextField txField = new TextField(10);
    Label label = new Label("请输入0到1000的整数:");
    Label label1 = new Label("次数:0");
    int num;
    private int nPrice;
    void reinit(){
        num=0;
        label1.setText("次数:0");
        nPrice=(int)(1000*Math.random());
    }
    public Guess() {
        super();
        reinit();
        this.setLayout(new BorderLayout());
        /*输入*/
        pNorth.add(label);
        pNorth.add(txField);
        txField.addActionListener(new ActionListener(){
                public void actionPerformed(ActionEvent arg) {
                    press_ok();
                }
            });
        add(pNorth, BorderLayout.NORTH);
        /*次数统计*/
        pNum.add(label1);
        add(pNum, BorderLayout.CENTER);
        /*按钮*/
        Button btStart = new Button("重新开始");
        btStart.setActionCommand("start");
        btStart.addActionListener(this);
        Button btOk = new Button("确定");
        btOk.setActionCommand("ok");
        btOk.addActionListener(this);
        Button btCancel = new Button("取消");
        btCancel.setActionCommand("cancel");
        btCancel.addActionListener(this);
        pBottom.add(btStart);
        pBottom.add(btOk);
        pBottom.add(btCancel);
        add(pBottom, BorderLayout.SOUTH);

        setBackground(Color.white);
    }

    void press_ok(){
        int guessPrice = 0;
        try {
            guessPrice = Integer.parseInt(txField.getText().trim());
            String guess = comparePrice(guessPrice);
            label1.setText("次数:"+num);
            new MsgDlg(guess);
        }
        catch (Exception e) {
            new MsgDlg("出错了,请重新猜!");
        //    e.printStackTrace();
        }
    }
    String comparePrice(int guessPrice) {
        if (guessPrice == nPrice) {
            return "你猜对了,恭喜你!";
        }
        else if (guessPrice > nPrice) {
            num++;
            return "太大了,请重新猜!";
        }
        else if (guessPrice < nPrice) {
            num++;
            return "太小了,请重新猜!";
        }
        return "出错了";
    }
    public void actionPerformed(ActionEvent evt) {
        if (evt.getActionCommand().equals("start")) {
            txField.setText("");
            reinit();
        }
        if (evt.getActionCommand().equals("ok")) {
            press_ok();
        }
        else if (evt.getActionCommand().equals("cancel")) {
            txField.setText("");
        }
    }
}
//index.html
<html>
<body>
<applet code=java_class.Guess.Guess.class width="600" height="120" >
</applet>
</body>
</html>

文件目录结构

.\java_class\Guess\Guess.java
.\java_class\Guess\MsgDlg.java
.\index.html

编译语句

javac java_class\Guess\*.java

效果预览


发表评论?

0 条评论。

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>