在applet中按下按钮时,为什么错误地按下了变量的值?

Dar*_*rsh 0 java applet button

我有一个代码,其中有一个v默认值为0 的变量.我也有2个按钮:oknope.使用我的代码,当ok按下时,值v应为1,当nope按下时,值v应为2.但在这两种情况下,它打印的值为v2.为什么这样?我该如何纠正?

编辑:我犯了一个小错误,我已经纠正了,多亏了MadProgrammer.

import java.awt.*;
public class chk extends java.applet.Applet
{
    Button ok = new Button("OK!");
    Button nope = new Button("Nope");
    int v = 0;
    public void init()
    {
        setBackground(Color.white);
        add(ok);
        add(nope);
    }

    public boolean action(Event evt , Object arg)
    {
        if(evt.target instanceof Button)
        {
            check((Button)evt.target);
            return true;
        }
        return false;
    }
    public void check(Button b)
    {
        if(b == ok);
        {
            v= 1;
            repaint();
        }
        if(b == nope);
        {
            v=2;
            repaint();
        }
   }
   public void paint(Graphics g)
   {
        g.drawString(""+v,40,40);
   }
   }
Run Code Online (Sandbox Code Playgroud)

所有帮助表示赞赏.如果我犯了任何错误,请告诉我.

Mad*_*mer 6

看看你的if陈述

    if(b == nope);
Run Code Online (Sandbox Code Playgroud)

;在每个语句的末尾添加了一个.这意味着{...}无论if语句可能需要什么,都会执行大括号内的两个代码块.;从每个语句的末尾删除

Ps-除非你非常特别需要使用原始AWT,否则我会考虑看看Swing,或者你是否真的喜欢冒险,JavaFX,因为它们是更现代的GUI API

  • @AlexR我不知道它为什么会这样,但它只是做了:P (2认同)