invokelater相关内容

在 invokelater 中调用 JFileChooser 两次导致程序不退出

我正在编写一个程序来从两个文本文件中收集信息以添加到数据库中的表中.为了允许用户选择他自己的文件,我创建了一个名为 chooseFile() 的非静态方法,它使用 JFileChooser 类来呈现一个 showOpenDialog> (我也试过它作为静态方法,结果相同.如果这听起来像我在猜测,你是对的 - 我只是一般的编程). 我的理解是在main() 中调用Swing 类应该使用invo ..
发布时间:2021-09-02 20:39:29 Java开发

invokeLater vs invokeAndWait with JTextArea

我有一个在多个线程上运行的 Swing 应用程序,我在 EDT 上创建了 Swing 组件.Executor 启动线程,在某个时刻将文本插入 JTextArea.但是,与 InvokeAndWait 不同,InvokeLater 并不总是执行附加操作.正如我所收集的,它是异步的、非阻塞的,但仍然应该进行附加.怎么可能? 谢谢 解决方案 使用 EventQueue.invokeLate ..
发布时间:2021-09-02 20:15:27 Java开发

Java Swing EDT &并发

我只是想知道是否仍然需要确保 invokeLater() Runnable 中的同步性. 我遇到了死锁,需要在保持并发的同时克服它. 这会是一个好的代码示例吗?: 私有字符串文本;私有无效更新文本(){SwingUtilities.invokeLater(new Runnable(){公共无效运行(){同步(FrameImpl.this){someLabel.setText(text ..
发布时间:2021-09-02 20:12:15 Java开发

我应该在 SwingWorker.doInBackground() 中使用 SwingUtilities.invokeLater() 吗?

从 Swing Worker 与 EDT 交互的常用方法是使用 get() 方法.但我有一个很长的任务和这样的代码: public Void doInBackground() {for(对象o:对象){做点什么();MyGlobalGUIConsole.addMessage("完成" + o);}} 在大多数教程中建议使用返回值从 SwingWorker 返回到 EDT,但我可以: publ ..
发布时间:2021-09-02 20:10:24 Java开发

为什么要使用单独的线程在JAVA中显示GUI

这个简单的问题使我感到困惑.您可以通过设置框架的 setVisible 属性 true 来显示JAVA GUI应用程序.但是,在我在互联网上发现的几乎所有示例中,它们都使用单独的线程来执行相同的操作. 他们这样做, SwingUtilities.invokeLater(new Runnable(){@Override公共无效run(){new Frame().setvisible(tru ..
发布时间:2021-05-18 20:16:45 Java开发

在invokeLater()或invokeAndWait情况下是否给出事前发生关系?

可以肯定是这样-但我想确定- 在invokeLater()或invokeAndWait()的情况下,是发生在事前关系的吗? 方法在(分别为SwingUtilities)AWT.EventQueue中定义. 我猜想在EventQueue中输入内容时会涉及到同步 因此,作为同步的结果,给出了事前发生的关系并最终给出了可见性. 但是真的是那样吗? (在哪里可以找到该信息?) 例如 在某 ..

如何在启动时为JSplitPane设置分频器位置

我有包含JSplitPane的JPanel.通过使用invokeAndWait方法,可以在运行时将JPanel注入到JFrame中.然后调用invokeLater来更新SplitPane中的分隔线位置. 问题是,当调用分隔器更新时,JPanel宽度仍为0. 当我在代码中的任何地方添加睡眠或断点时(invokeLater除外),代码都可以正常工作. final JPanel vie ..
发布时间:2020-05-14 01:45:04 Java开发

当按下JButton时,Java运行其他类的main方法

我正在尝试开发一个JFrame,它有两个按钮,可以让我调用其他类的main方法。第一次尝试是将它直接放入每个按钮的actionPerformed中,这将导致另一个类的JFrame打开但只显示它的标题而不显示JPanel的任何内容另外冻结程序(甚至不能按关闭按钮,必须进入任务管理器或eclipse杀死它)。第二次尝试是在actionPerformed中添加一个方法调用,并且这次添加方法将调用其他类的 ..
发布时间:2019-01-09 22:24:10 Java开发

如何创建“事件驱动”? Java中的后台线程?

我喜欢简单的 invokeLater(),用于向AWT EDT发送工作单元。有一个类似的机制可以将工作请求发送到后台线程(例如SwingWorker),但据我所知,这些机制没有任何类型的事件排队&调度机制,这是invokeLater()所依赖的。 所以相反,我最终给了我的后台线程一个阻塞队列,其他线程向其发送消息,并且该线程基本上运行一个接收循环,阻塞直到消息到达。 事实上,这可能正是 ..
发布时间:2018-12-29 19:25:54 Java开发

JavaScript等效于SwingUtilities.invokeLater()

在Javascript中, SwingUtilities 的Java的 invokeLater()方法是否相同? 更新1 因此, setTimeout()零延迟与 invokeLater()完全相同? 解决方案 如果你想异步运行某些东西(稍后),试试 setTimeout() JavaScript是单线程的。如果要在事件处理程序之外运行一些耗时(CPU密集型)任务,可 ..
发布时间:2018-12-10 10:21:54 Java开发