Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 基于文本的游戏JTextArea不显示JTextField_Java_Swing_Jtextfield_Jtextarea - Fatal编程技术网

Java 基于文本的游戏JTextArea不显示JTextField

Java 基于文本的游戏JTextArea不显示JTextField,java,swing,jtextfield,jtextarea,Java,Swing,Jtextfield,Jtextarea,好的,我正在制作一个基于文本的java游戏,比如Zork。我正在使用一个简单的GUI,它有一个JTextField JTextArea等。我在文本字段中输入用户时遇到了极大的困难,例如,“North”,让JTextArea甚至说North,更不用说执行命令了。这是我的密码 import java.awt.Color; import java.awt.Desktop.Action; import java.util.Scanner; import javax.swing.AbstractActi

好的,我正在制作一个基于文本的java游戏,比如Zork。我正在使用一个简单的GUI,它有一个JTextField JTextArea等。我在文本字段中输入用户时遇到了极大的困难,例如,“North”,让JTextArea甚至说North,更不用说执行命令了。这是我的密码

import java.awt.Color;
import java.awt.Desktop.Action;
import java.util.Scanner;

import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class gameFrame {


    public static void main(String[] args) {
        //create variables for graphics
        String a = ("Adventure");
        JFrame frame = new JFrame(a);
        JPanel panel = new JPanel();
        JTextField input = new JTextField(25);
        JTextArea output = new JTextArea("Hello", 65, 30);
        JMenu exit = new JMenu("Exit");

        //add main parts together
        frame.add(panel);
        panel.add(input);
        panel.add(output);


        //frame
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
        frame.setResizable(false);
        frame.setSize(900, 600);

        //panel
        panel.setBackground(Color.WHITE);

        //input
        input.setForeground(Color.MAGENTA);
        String inputBox = input.getText();



        //output
        output.setEditable(false);
        output.setForeground(Color.MAGENTA);


        }


    }

好的,那么您将java中的字符串与
do。。。。而…
循环。你试过这样的东西吗

String inputBox = input.getText();
do {
  // Code to do whatever when inputBox equals "north"
  output.append("You went: North");
}
while(inputBox.equals/*IgnoreCase*/("north");
您还可以向JTextField添加一个
ActionListener
。单击enter时,在JTextArea上显示JTextField的内容

input.addActionListener(
  new ActionListener() {
    public void actionPerformed(ActionEvent event) {
      output.append(inputBox.getText());
    }
  }
);

这是未编译且未选中的。

当我运行输入块时,我得到的只是“你去北方了”,而没有实际键入任何内容。无论键入什么,只要单击enter,ActionListener就会出现。当我打开程序时,它在我做任何事情之前只说“你去北方了”。哦。很抱歉。正如我所说,我没有检查它。我已经将代码设置为if-then而不是do-while,它现在可以工作了,但是我如何使用jtextfield触发器来表示你去了北方?只是在north上输入没有任何作用,它需要被解雇。