java - 编写基于文本的游戏,我对如何在按下按钮时检查输入然后更新感到困惑

标签 java applet

到目前为止,我有一个主类、消息类和一个答案类。消息和答案存储在单独的数组中,因此我可以在需要时将它们拉出来。但是,我不确定如何进行。我需要检查用户在点击继续按钮时输入的内容以及该消息的相应答案数组。 (一条消息将有自己的一系列答案来检查)。如果有更好的方法来做到这一点,即每条消息都有一个案例陈述,请告诉我。这是代码:

主要内容:

package com.game.main;

import java.applet.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Main extends Applet {

private TextField commandInput;
private TextArea messageDisplay;
private Button button;
public Message messages;
private String currentLevel;

private boolean running = false;
private Thread thread;
private ActionListener action;

public synchronized void start() {
    running = true;
    thread = new Thread();
    thread.start();
}

public synchronized void stop() {
    running = false;
    try {
        thread.join();
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}

// Initialisation method
public void init() {
    super.init();

    messages = new Message();
    // Define colours
    setBackground(Color.white);
    setForeground(Color.black);

    Panel appletPanel = new Panel();

    // Use a border layout
    BorderLayout b = new BorderLayout();
    appletPanel.setLayout(b);
    add(appletPanel);

    this.setSize(800, 400);

    // Define UI items
    commandInput = new TextField(20);
    messageDisplay = new TextArea(null, 20, 60, TextArea.SCROLLBARS_NONE); // 20 rows x 60 chars
    button = new Button("Proceed");
    Panel inputPanel = new Panel();

    // Add components to our layout / panels
    inputPanel.add(commandInput);
    inputPanel.add(button);
    appletPanel.add(messageDisplay, "North");
    appletPanel.add(inputPanel, "South");

    currentLevel = messages.messageArray[0];
    messageDisplay.append(messages.messageArray[0]);

    run();
}

// game loop
public void run() {
    requestFocus();
    // read as while "running == true"
    while (running) {

    }
}

消息:

package com.game.main;

public class Message {

public String[] messageArray;

public Message() {
    messageArray = new String[50];
    messageArray[0] = "Welcome.";
}
}

答案:

package com.game.main;

public class Answers {

public String[] introAnswers;

public Answers() {
    introAnswers = new String[2];
    introAnswers[0] = "Go";
    introAnswers[1] = "go";
}

最佳答案

您需要使用 EventListener因此您的程序可以检测何时按下按钮并检查文本区域中的文本。看看这个 tutorial .

这是一个简单的通用示例:

button.addActionListener (new ActionListener () {
    public void actionPerformed(ActionEvent e) {
        message = textArea.getText();
        //Do stuff
    }
});

关于java - 编写基于文本的游戏,我对如何在按下按钮时检查输入然后更新感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16999660/

相关文章:

java - 如何在 Struts 2 jQuery 饼图中设置自定义颜色

java - 创建 arraylist 时如何引用在另一个类中创建的对象?

java - Spring 配置文件和属性占位符异常

java - 无法将 JMenuBar 添加到 Applet

java - 来自证书颁发机构的 java 代码签名需要多少钱?

java - IE8/JRE1.6.0_24 中的 JApplet -- getAppletContext() 和 JSObject.getWindow() 上的 NullPointerException

java - 小程序中 Class.forName( "Prohibited package name: java.util") 上的 "java.util..."

SFTP 中出现 java.security.InvalidAlgorithmParameterException

java - GXT3 : How to implement svg buttons

Java Applet 空指针异常