【发布时间】:2016-09-19 08:56:38
【问题描述】:
我有两个不同且独立的JFrame窗口:
DataFrameGraphFrame
第一个是供用户操作的,输入不同的值和模式以显示在 2) 中呈现的图表上。 1) 将特定值发送到 2)(双精度数组),以便“GraphFrame”可以创建图形。
我在DataFrame的“main”方法中调用GraphFrame的“main”方法,使它们同时运行,并且在整个过程中都是可见的。
我希望这些框架是完全独立的,这意味着 1) 的任务是发送值,而 2) 的任务是检查何时收到值,然后创建图表。
我也更喜欢将大部分方法保持为私有,这样就无法从外部源访问它们。
我的问题是,我不知道哪种方式是实现这种数据交换的最佳方式。 Frame 2) 的最佳方式是继续“倾听”它需要接收的值吗?
我是否应该在 2) 上创建 getter/setter 并在观察者 https://sourcemaking.com/design_patterns/observer 的帮助下创建?
或者我应该使用线程吗?
甚至创建一个不断等待值的传统循环,例如:
while(array.isEmpty()) {
//stuck here
}
//create the graph from the values in array
目前我正在从 setter 方法接收 2) 中的值,但到目前为止,我无法在获得值后执行我想要的代码。
你认为最好的实现方式是什么?
P.S.:我是否应该考虑不从 DataFrame 调用 GraphFrame main 并分别运行这两个?
【问题讨论】:
-
“JFrame 等待数据接收以执行其任务” 将一帧转换为模态
JDialog或JOptionPane。在setVisible(true)之后立即查询控件。该调用之后的代码语句只会在它关闭后继续执行。 -
您好@AndrewThompson,我之前已经多次看到并阅读过该线程,并且我一直在使用布局来避免多个 JFrame。但是,对于我正在创建的内容,我需要这 2 个(并且只会是 2 个),因为“DataFrame”是模拟真实环境的,所以它主要用于测试“GraphFrame”。确实是要给人一种印象,即 2 个不同的应用程序,而不仅仅是一个。因此我的 P.S.在我的线程中。
标签: java swing jframe observer-pattern