Я пытаюсь сделать апплет java, но у меня проблемы с клавиатурой - PullRequest
0 голосов
/ 04 марта 2020

Я пытаюсь создать математическую игру, в которой пользователь вводит номер вопроса (1-8), и появляется поле ввода, чтобы сохранить то, что он ввел. Я испытываю трудности с полем ввода и клавишей, любая помощь будет принята с благодарностью. Я пытаюсь создать состояние if, которое будет похоже на то, что если пользователь введет число 1, он попросит пользователя ввести правильный ответ на первый вопрос, и если пользователь поймет это правильно, он добавит точку, и, если они получат ее неправильно, будет добавить 1 смерть. Пользователь должен иметь возможность просматривать каждый вопрос только один раз.

import java.awt.KeyEventDispatcher;
import java.awt.KeyboardFocusManager;
import java.awt.event.KeyEvent;
import java.awt.*;
import java.applet.*;
import javax.swing.*;

public class Java_Math_Game extends Applet {
     private static volatile boolean wPressed = false;
    public static boolean isWPressed() {
        synchronized (Java_Math_Game.class) {
            return wPressed;
        }
    }


    Image offScreen;
    Graphics offG;

    Image background;
    AudioClip music;

    String answer;
    int lives = 3;
    int score = 0;
    int points = 0;
    int q1 = 2400;
    int answer1;

    public void init() {
        offScreen = createImage(500,500);
        offG = offScreen.getGraphics();

        background = getImage(getCodeBase(),"background1.jpg" );

        MediaTracker tracker = new MediaTracker(this);
        tracker.addImage(background, 0);
        while(tracker.checkAll(true) != true){ }
        if (tracker.isErrorAny()){
        JOptionPane.showMessageDialog(null, "Trouble loading pictures.");

        AudioClip music = getAudioClip(getDocumentBase(), "Soulful.wav");
        music.play();
    }

    }


    public void paint(Graphics g) {
        g.drawImage(background,0,0,this);
        g.setFont(new Font("TimesRoman", 1, 25));
        g.drawString("Type question number to choose your question",200,30);
        g.drawString("Question 1 60 x 40 = ?",20,100);
        g.drawString("Question 2 10 + 830 = ?",20,300);
        g.drawString("Question 3 647 - 416 = ?",20,500);
        g.drawString("Question 4 10 / 2 = ?",320,100);
        g.drawString("Question 5 120 / 40 = ?",320,300);
        g.drawString("Question 5 400 + 800 = ?",320,500);
        g.drawString("Question 6 8.3 x 8.3 = ?",620,100);
        g.drawString("Question 7 123 - 123 = ?",620,300);
        g.drawString("Question 8 50^2 = ?",620,500);
    }


        public boolean keyDown(Event e, int key) {
        //Convert ASCII integer value to a String
        String entered = ""+(char)key;

        //Check if "d" or right arrow was pressed and change x direction
        if (entered.equals("d"))
        {
        answer = JOptionPane.showInputDialog("Enter Answer");
        answer1 = Integer.parseInt(answer);
        }
    return true;
}
}
...