java - 如何从 JFrame 切换到 java 类?

标签 java swing oop jframe

我一直在努力弄清楚如何从 JFrame 转到我的 java 类。

到目前为止,这是我的代码:(它只打开主要的..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()));

main 曾经是类,这让我可以很容易地为框架使用 setvislble(),但现在我需要它,而 main 现在是 JFrame。我需要知道如何打开类文件。 (此外,如果有人知道除了使用 CMD 之外如何切换,那就太好了!)

我试过使用这个加上其他变体的组合,但它不起作用。

java -cp "C:\Users\Admin\Documents\NetBeansProjects\Program\dist\Program.jar class"

最佳答案

JFrame button, if my understanding is correct, does not handle infinite loops well.

这个想法不是要阻止 EDT,但肯定有正确的方法在 Swing 中重复一个 Action (除非另有说明),以及执行长时间运行的任务的方法。以下是我通常给出的一些建议:

Don't block the EDT (Event Dispatch Thread). The GUI will 'freeze' when that happens. See Concurrency in Swing for details and the fix.

但回到手头的问题..

..getting the user to input information in the GUI, then sending that information into a text file. The class reads the text file, gets the information and does its things..

好的,这是 10 种不同的错误。

假设 GUI 名为 GUI.class,另一个类名为 Worker.class

Worker.class

此类可能有一个无参数构造函数以及一个接受 InputStream 的构造函数(对于文本文件,如果最终需要的话)。

Worker 类可能有一个 main(String[]) 创建一个 Worker 对象的实例。它可能使用:

  1. Worker 的构造函数的 InputStream,它将配置完成工作所需的字段。
  2. Worker 实例的无参数构造函数,然后使用setter 方法 对其进行配置。 (也许通过命令行提示用户提供信息。)

main 完成后,在 Worker 实例上调用 execute() 并调用 getter 方法求结果,然后将结果写入System.out

GUI.class

GUI 也可以使用 Worker 实例。它可能会使用无参数变体,然后将 setter 方法绑定(bind)到 GUI 中的输入控件。一旦用户点击 Execute 按钮,execute() 过程,然后查询 getter 方法以向用户显示结果(仍在 GUI 中)。

关于java - 如何从 JFrame 切换到 java 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27199423/

相关文章:

java - 尝试使用 Java Swing 显示选项卡

python - 从类实例python中删除属性

Java:更新信息的最佳实践

java - 为什么我无法设置 Java http User-Agent?

java - 创建简单 RMI 应用程序时出现 "ClassCastException: $Proxy0 cannot be cast"错误

java - 如何在 Java 中使用 KeyPressed

JavaFX:来自封装变量的服务类更新消息

java - 如何使 JFrame 变得无形?

c++ - 在 C++ 中处理不同的文件

oop - 利斯科夫 vs 覆盖