java - 将基于文本的游戏制作成可执行的 jar - Java

标签 java text

我只是想知道如何将基于文本的控制台游戏制作成可执行的 jar。

根据我在本网站其余部分看到的内容,我需要使用 JTextField 和 JTextPane。我也知道要使其可运行,需要创建自己的控制台。我不在乎它有多复杂,只要它足够简单易懂即可。如果这是前进的方式,请您指出正确的方向来学习如何实现这一点。

如果这与其他地方的问题重复,请指出我的方向;我已经搜索过,但找不到任何简单的问题。

最佳答案

对于控制台,您可以从命令行运行它,也可以像您说的那样制作一个 GUI 并让它像控制台一样工作。

GUI 可以通过两种方式完成:

  1. 创建一个简单的 GUI,其中包含用于输出的文本框和用于输入的 1 行。添加方法来写入和获取行(分别)
  2. 创建另一个简单的 GUI 和一个扩展 PrintStream 的类。覆盖 PrintStream 类的写入方法,让它们写入您创建的 JTextPane。遵循 InputStream (System.in) 的相同格式。您可以通过 System.setIn(InputStream) 和 System.setOut(PrintStream) 设置它们。这种方法的结果更复杂,但给人的感觉更完整。

关于 #2 的更多信息: @Jordan.McBride System 类中的所有内容均由 JRE 定义。在您的程序运行之前,JRE 将准备您的程序可能调用的 System 类的所有元素。这样做时,它会创建一个 PrintStream 对象并告诉它写入控制台。您的程序可以使用 System.out 调用此类。同样,JRE 也创建一个 InputStream 对象并将其分配给控制台窗口,您可以通过 System.in 引用它。 Java 允许您通过 System.setIn(..) 和 System.setOut(..) 将这些 Stream 类替换为您自己的类。这在您的程序 GUI 失败时非常有用,您不必显示用户不友好的控制台来显示错误。

通过创建自己的类来覆盖 PrintStream 和 InputStream 类,您可以重定向数据流向的位置。查看 PrintStream 类的 API here . println() 和 print() 方法都调用 write() 函数。为了简单起见,我只会重写 print 和 println。在你重写的函数中,你可以有像

这样简单的东西
public void println(String outstr)
{
  this.textBox.setText(this.textBox.getText() + outStr + "\n");
}

您当然必须有一个 textBox 的实例字段,以便它知道在哪里写。

关于java - 将基于文本的游戏制作成可执行的 jar - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21358693/

相关文章:

python - 解析文本文件而不拆分多单词名称

java - 按特定字符序列将文本文件拆分为多个文件

Java:使用扫描仪时总是收到 NoSuchElementException

java - 如何调用Asynctask中的Mainactivity方法进行后台工作?

java - 如何在 .jar 中包含和访问图像

java - AndEngine - 滚动 map 时的 Artifact (TextureOptions 相关)

在 R 和 plot() 中读取阿拉伯数据文本

java - 在这种情况下可以替代 Java ByteBuffer 吗?

javascript - 如何使用javascript在IE中的表单中设置文本区域值

Delphi:如何将互联网上的文本文件加载为字符串?