我只是想知道如何将基于文本的游戏机游戏制作到可执行罐中。
从我在本网站的其余部分中看到的内容,我需要使用JTEXTFIELD和JTEXTPANE。我也知道,要使它可以运行,就需要创建自己的控制台。我不在乎它有多复杂,只要它足够简单就可以理解。如果这是这样的,那么提高了您的方式,请您指出我的正确方向,以学习如何完成此操作。
如果这是其他地方的重复,请指出我的方向;我已经搜索过,找不到任何简单的问题。
对于控制台,您可以从命令行运行它,也可以像您说的那样,制作GUI并将其表现为控制台。
GUI可以通过两种方式完成:
- 创建一个带有用于输出的文本框的简单GUI和1行的输入框。添加方法以分别写和获取行
- 创建另一个简单的GUI和一个扩展PrintStream的类。覆盖PrintStream类的写入方法,以使它们写入您创建的JTEXTPANE。遵循InputStream(System.in)的相同格式。您可以通过System.Setin(InputStream)和System.Setout(printStream)设置这些。这种方法的结果更为复杂,但仍具有更完整的感觉。
更多关于#2:@jordan.mcbride系统类中的所有内容均由JRE定义。在您的程序运行之前,JRE将准备您程序可能调用的系统类的所有元素。这样,它会创建一个printstream对象,并告诉它写入控制台。您的程序可以使用System.out调用此类。同样,JRE还会创建一个输入式对象并将其分配给控制台窗口,您可以通过System.in来引用该对象。Java使您可以选择使用您自己的System.Setin(..)和System.Setout(..)交换这些流类。如果您的程序GUI失败,您不必显示不友好的控制台即可显示错误。
,这很有用。通过创建自己的类覆盖PrintStream和InputStream类的类,您可以重定向要数据流。在此处查看printstream类的API。println()和print()方法都调用write()函数。为了简单起见,我只会覆盖印刷品和印刷品。在您的函数中,您可以拥有像
一样简单的东西public void println(String outstr)
{
this.textBox.setText(this.textBox.getText() + outStr + "n");
}
当然,您必须具有文本框的实例字段,以便知道在哪里写。
您需要JTextField
和JTextPane
,仅当您想要游戏的GUI时。
对于控制台游戏,
首先创建一个manifest.txt
。确保以新线路结束。
Main-Class: MyMainClass
然后
javac MyMainClass.java SomeOtherClass.java
jar -cvfm my-game.jar manifest.txt *.class
然后运行它,
java -jar my-game.jar
如果您正在寻找一个简单的解决方案,则可以考虑使用ACM Java工作队库和子分类综合图。这应该使您当前的大部分代码完好无损。
http://www-cs-faculty.stanford.edu/~eroberts/jtf/