我一直试图弄清楚如何从JFrame转到我的java类。
到目前为止,这是我的代码:(它只打开main..which是JFrame)
Process process = Runtime.getRuntime().exec("cmd.exe /c start java -jar \C:\Users\Admin\Documents\NetBeansProjects\Program\dist\Program.jar");
BufferedReader input = new BufferedReader(new InputStreamReader(process.getInputStream()));
主要用于类,使我可以轻松地使用setvislble()作为框架,但现在我需要它向后,主要是现在的JFrame。我需要知道如何打开类文件。 (如果有人知道如何切换除了使用CMD之外会很棒!)
我尝试过使用此功能加上其他变体的组合,但它不会起作用。
java -cp "C:\Users\Admin\Documents\NetBeansProjects\Program\dist\Program.jar class"
答案 0 :(得分:3)
JFrame按钮,如果我的理解正确,则不能很好地处理无限循环。
这个想法不是要阻止EDT,但是在Swing中肯定会有正确的方法重复一个动作(除非另有说明),以及执行长时间运行任务的方法。以下是我通常给出的一些建议:
不要阻止EDT(事件调度线程)。 GUI将会冻结'当发生这种情况时有关详细信息和修复,请参阅Concurrency in Swing。
但回到手头的事情......
..让用户在GUI中输入信息,然后将该信息发送到文本文件中。该类读取文本文件,获取信息并执行其操作..
好的,这是10种不同的错误。
我们假设GUI名为GUI.class
,另一个名为Worker.class
。
Worker.class
这个类可能有一个no-args构造函数以及一个接受InputStream
的构造函数(对于文本文件,如果最终需要的话)。
Worker
类可能有一个main(String[])
,用于创建Worker
对象的实例。它可能使用:
InputStream
的{{1}}构造函数,用于配置完成工作所需的字段。Worker
实例的无参数构造函数,然后使用 setter方法进行配置。 (可能会提示用户通过命令行提供信息。) Worker
完成后,请致电main
实例上的execute()
并为结果调用 getter methods ,然后将结果写入{{ 1}}。
Worker
GUI还可以使用System.out
实例。它可能会使用no-args变体,然后将setter方法绑定到GUI中的输入控件。一旦用户单击 Execute 按钮,GUI.class
该过程,然后查询getter方法以向用户显示结果(仍在GUI中)。