我只是想知道如何将基于文本的控制台游戏变成可执行的jar.
从我在本网站其余部分看到的内容,我需要使用JTextField和JTextPane.我也知道要使它可以运行,它需要创建自己的控制台.我不在乎它有多复杂,只要它足够简单易懂.如果这样,那么你可以指出我正确的方向来学习如何实现这一目标.
如果这是其他地方的问题的副本,请指出我的方向;我搜索过,找不到任何简单的问题.
最佳答案 对于控制台,您可以从命令行运行它,或者像您所说的那样运行GUI,并使其像控制台一样运行.
GUI可以通过两种方式完成:
>创建一个简单的GUI,其中包含用于输出的文本框和用于输入的1行.添加写入和获取行的方法(分别)
>创建另一个简单的GUI和一个扩展PrintStream的类.重写PrintStream类的write方法,让它们写入您创建的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类here的API.println()和print()方法都调用write()函数.为简单起见,我只会覆盖print和println.在你的首要功能中,你可以拥有一些简单的东西
public void println(String outstr)
{
this.textBox.setText(this.textBox.getText() + outStr + "\n");
}
你当然必须有一个textBox的实例字段,以便它知道在哪里写.