- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个不同且独立的 JFrame
窗口:
数据帧
GraphFrame
第一个供用户操作,输入不同的值和模式以显示在 2) 中呈现的图表上。 1) 将特定值发送到 2)(带 double 的数组),以便“GraphFrame”可以创建图形。
我在DataFrame的“main”方法中调用GraphFrame的“main”方法,以便它们同时运行并且在整个过程中都是可见的。
我希望这些框架完全独立,这意味着 1) 的任务是发送值,2) 的任务是检查何时收到值,然后创建图表。
我还喜欢将大多数方法保留为私有(private),以便无法从外部源访问它们。
我的问题是,我不知道哪种是实现此数据交换的最佳方法。第 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。从概念上讲,这更像是将一个 UI 分成两个窗口,而不是像您所说的那样运行两个框架。
Swing 要求所有 UI 元素都由一个线程(AWT 线程)更新。与 UI 的交互也将在 AWT 线程中运行。您需要考虑到这一点。
此外,最好的做法是将数据模型和 View 分开。为了解决您的问题,您可以为 GraphFrame 创建一个模型,该模型通过 DataFrame 上的更改进行操作。这些变化可能例如由使用 SwingUtils.invokeLater() 更新 GraphFrame 的模型上的监听器拾取。
当然,您可能还需要额外注意许多问题,并且根据您的要求,您可能需要进一步解耦这两个部分。
关于java - JFrame 等待数据接收以执行其任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37374704/
我正在尝试将 JFrame (bar) 添加到 JFrame (foo),这会强制 bar 在之前关闭foo 可以再次集成。 例如,在我可以再次编写代码之前,必须关闭“About Eclipse”框架
我有一个名为 User 的 JFrame,在其中声明一个名为 id 的变量,并根据某些条件将其设置为特定值。 我需要在称为输出的第二个 JFrame 中使用此变量。 这是我的代码 class Inpu
我有这个问题:我有一个 ArrayList,其中包含一些我想在特定框架中使用的项目,问题是数组列表通过在主类中初始化而变满我的项目。在本类(class)中,我还启动了与其他框架链接的起始框架(登录框架
如何在隐藏一个 Swing 程序的同时将一个 javax.Swing 程序移动到另一个 Swing 程序,以及如何制作可滚动的 JFrame。请帮助我。 最佳答案 在这里你可以找到一个非常good e
所以基本上我有一个 2D 游戏(基本上是过去的仿制品的链接),当你按 e 键时,库存会打开,关闭时会隐藏。问题是,每次我按 e 键时,它都会打开一个包含所有初始值的新库存,我希望它在初始值之后打开一个
我有一个 JFrame(1,主框架),它延续了 JPanel 和 JTable 以及数据。用户可以编辑数据。因此,一个新的 JFrame (2) 打开,用户可以输入新数据。如果他们在第二帧中单击“确定
我有一个新的netbeans“Java应用程序”项目,我试图从主JFrame添加第二个JFrame,用户可以从中加载文件。 所以我有主要的 JFrame main 方法 public static v
我的程序应该在单击按钮时启动第二个 JFrame 并打印一条语句,但它总是启动三个 JFrame 并打印三个语句。我只需要它来打印出一份声明并启动一个 Jframe。这是代码: import java
我目前已经构建了一个使用多个框架的应用程序。但如果我能在 1 帧中使用所有我用过的帧,那就太好了。如下图所示。 因此,如果您按左侧按钮“Speler Overzicht”,它将在右侧面板中向用户显示,
我目前有一个按钮,单击该按钮时,会执行一种方法,该方法创建一个带有加载多个图像的面板的 jframe。如果多次单击此按钮,图像将继续添加到加载到 jframe 上的现有图像上。我应该使用什么代码,以便
为什么无法将JFrame添加到JFrame中?它只是将一个组件添加到容器中。 Java 如何禁止我这样做?是的,我知道这样做没有意义,但我的问题的重点是了解 Swing 机制 - 它在幕后是如何工作的
我创建了一个生成 StartUpWindow 对象的类。其中一个 JButton 组件关闭 JFrame,然后调用一种新类型的框架进行实例化,AdminMainWindow。但是,当 AdminMai
我试图在不显示 JFrame 本身的情况下将 JFrame 渲染为图像(类似于 this 问题所问的内容)。我试过使用这段代码: private static BufferedImage getScr
我正在使用 XFCE 4 桌面的 Debian 8 上编译并运行以下代码。 import javax.swing.JFrame; import javax.swing.JComponent; impo
我有 14 个 JFrame 类和一个 JFrame 类,其中包含一个充当日历的 JTable。我希望当用户从 JTable 日历中选择日期时,更改 14 个 JFrame 类中任何一个文本字段或任何
我有 3 个扩展 JFrame 的对象让我们调用他们 FrameA FrameB FrameC . FrameA是我的主应用程序窗口。来自 FrameA的构造函数如果应用程序未注册我创建 FrameB
我试图简单地创建四个 jtextfields 和一个 jbutton。按下按钮后,我希望输入到 jtextfields 的文本作为参数(p、var、s、f)传递到另一个窗口,该窗口使用给定的参数显示数
这个问题已经有答案了: Close one JFrame without closing another? (2 个回答) 已关闭 6 年前。 我制作了一个程序,其中存在三个jframe。但问题是,当
我正在用 java 构建一个桌面学生管理应用程序。所以我需要关闭当前的 JFRAME,同时另一个 JFRAME 可见(关闭新的 jframe 后,旧的 jframe 应该可见)。你能帮我一下吗? 最佳
我正在开发的应用程序包含一个主 JFrame,用户最终可能会从中打开另一个补充框架。我正在尝试实现应用程序的这种行为,其中一旦主框架最小化,补充框架就会最小化(图标化)。 我正在考虑重写主框架的 se
我是一名优秀的程序员,十分优秀!