问题标签 [event-dispatch-thread]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JTextArea 默认值?
我只被教导通过事件调度程序线程管理 GUI。目前我正在使用textArea.append("something");
事件调度程序线程的外部,但我希望这总是在运行程序开始时发生。如何设置监听器以在程序启动时采取行动,或者我所做的是否可以接受?
java - 为什么我在 Java 中开始计算时我在 Java 中的 GUI 冻结
我正在开发一个java应用程序
但是当我开始我的申请过程时我的申请冻结
因此我可以在此过程中更新我的 GUI
你们知道如何解决这个问题吗?
我会很感激你的回复 thx
伙计们,我已经尝试过了,但它仍然冻结了 GUI
这是我的代码
java - 在 Swing 中的 JTextArea 上使用 setText 时出现死锁
我有以下 Java 程序,其中一个在大约 50% 的启动尝试中启动。其余时间它在后台死锁而不显示任何 GUI。我将问题追溯到 JTextArea 对象的 setText 方法。使用像 JButton 这样的另一个类适用于 setText 但 JTextArea 死锁。谁能向我解释为什么会发生这种情况以及以下代码有什么问题:
}
java - 创建具有 gui 的服务器应用程序
我必须创建一个具有 GUI 的应用程序。我的应用程序必须作为服务器工作。当它启动时,它必须接受所有传入的连接并将输出写入 JTextArea。我的问题是我必须以我可以接受连接的方式创建ServerSocket ss = new ServerSocket(port_number)
方法ss.accept
。我试图在我的 gui 的主构造函数中创建,但作为ServerSocket
一个I/O
请求 gui 卡住了。解决解决方案的一些想法?
我在我的 GUI 的构造函数中创建:
connection()
我创建服务器套接字并接受调用的方法在哪里
iphone - 通过方法dispatch_async从子线程发送到主线程的IPhone Event,慢,尝试改进。
App从子线程接收到事件,但是我们需要将它发送到主线程进行UI更新问题,目前使用方法dispatch_async,由于主线程非常繁忙,有时需要两三秒才能到达目的地,慢,尝试改进,但到目前为止没有找到更好的方法,任何想法或讨论将不胜感激,在此先感谢。
java - Swing - 更新标签
我有一个消息标签和一个提交按钮。提交按钮将被多次按下,每次按下的操作最多可能需要一分钟。
按下按钮时,我想将消息设置为空,任务完成后,我想将消息设置为“完成”。
是否可以在方法运行之前(或在方法中)更新该消息标签submitActionPerformed()
,但在单击按钮之后?
java - java SwingWorker.doInBackground() 不能访问 GUI 元素
可能这是微不足道的,我很难理解SwingWorker上的简单文档。
这是复制粘贴的内容
工作流程
SwingWorker 的生命周期涉及三个线程:
当前线程:在该线程上调用了 execute() 方法。它安排 SwingWorker 在工作线程上执行并立即返回。可以使用 get 方法等待 SwingWorker 完成。
工作线程:在该线程上调用 doInBackground() 方法。这是所有后台活动都应该发生的地方。要通知 PropertyChangeListener 绑定的属性更改,请使用 firePropertyChange 和 getPropertyChangeSupport() 方法。默认情况下,有两个可用的绑定属性:状态和进度。
事件调度线程:所有与 Swing 相关的活动都发生在该线程上。SwingWorker 调用 process 和 done() 方法并通知此线程上的任何 PropertyChangeListener。
通常,当前线程是事件调度线程。
--
工作线程不是 EDT,因此 doInBackground() 中的代码不得访问 GUI 元素。我的理解正确吗?
背景:我们有使用 SwingWorker 的小代码,但有 doInBackground() 创建 FileChooser 并调用setCurrentDirectory()
. 我怀疑这导致我的异常与http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6637181几乎相同 (11-关闭,不是缺陷)
java - 事件调度线程 - 报告
我想知道,我想从我的摇摆工作人员向主线程报告某种形式的进度,这样我的界面就可以更新为随着进度的增加而变化的标签,例如
检查 1/6...
检查 2/6...
..
..
我在 c# 中做了类似的事情,但不记得现在如何无法将逻辑转移到这个 java 应用程序。我在这里使用的是摇摆工人而不是后台工人
请有人能告诉我我需要研究什么
谢谢
java - Java:第二个窗口是空白的
我有一个奇怪的问题......我是一个相对较新的“狂热”Java 程序员(我以前的职业生涯中曾经以黑客 Perl 为生),正在开发我的第一个半真实应用程序。“Main-Class”是MyApp
创建UserInputDialog
实例的类。
UserInputDialog
extend
是我编写的一个类JFrame
,它实现了ActionListener
and KeyListener
,使用FlowLayout
了 ,并向用户展示了JLabel
,JTextField
和 Cancel/OK JButton
s。当JTextField
生成KeyEvent
wherekeyReleased() == KeyEvent.VK_ENTER
或“OK”JButton
生成时ActionEvent
,进行UserInputDialog
一些输入验证,调用setVisible(false)
,然后调用MyApp.doSomething( JTextFieldInstance.getText() )
。
这一切都完美无缺。但现在我正在尝试向 中添加进度窗口MyApp
,因为doSomething()
有时可能需要相当长的时间才能完成。
我创建了一个ProgressWindow
类,它扩展JFrame
、使用BorderLayout
和抛出一个JProgressBar
in 。NORTH
和 a JScrollPane
(包装 a JTextArea
)在 . CENTER
. ProgressWindow
当从测试数据实例化ProgressWindowTester
并提供测试数据时,它可以完美地工作。如果我将循环的测试复制并粘贴ProgressWindowTester
到MyApp
其中并且没有MyApp
实例化,它也可以正常工作UserInputDialog
(即,没有任何内在因素导致MyApp
这种行为;这似乎是某种我不理解的交互,在UserInputDialog
和ProgressWindow
)。
但是当我尝试按预期使用ProgressWindow
时MyApp
,即ProgressWindow
setVisible(true),我得到一个空白的 Swing 窗口(大小合适,并且标题栏设置正确)。和组件JProgressBar
不JScrollPane / JTextArea
出现。这些ProgressWindow
方法被MyApp
正确调用(System.err.println()
消息显示正确的交互),一切似乎都工作正常,只是,应该在ProgressWindow
......中可见的组件不是。
我可以发布代码片段,但这有点令人费解,我可能只是遗漏了一些明显的东西......
我通常熟悉分离 UI 和业务逻辑的概念(例如,我在构建 Perl 应用程序时使用HTML::Template
andClass::DBI
和CGI::Application
),但我不确定我在 Java 中“做对了”......
提前致谢!
哦,在我尝试过代码的两个环境中,我得到了完全相同的行为:Mac OS X 10.6.8 上的 javac 1.6.0_29 ("Snow Leopard");以及 Fedora 15 Linux 发行版、内核 2.6.31.10-3、LXDE 桌面环境上的 javac 1.7.0_02[1]。
[1] 直接从oracle.com下载;我没有使用 OpenJDK(我知道 JDK 7 基于 OpenJDK)或 gcj 或类似的东西
java - 使用 Swing 时的执行流程
我刚刚开始掌握java中的GUI编程。这是一个琐碎的程序(来自 O'Reilly 的“Head First Java”),表面上看起来很容易理解,但它有一个方面我不理解。
这个简单的程序在编译并运行后会打开一个带有按钮的窗口。
我不明白执行流程发生了什么。当我运行这个程序时,Test
类的静态main方法运行,里面的所有命令main()
都被执行了——那么为什么窗口出现后进程没有终止呢?为什么我仍然坐在看起来像无限循环的地方?什么是循环?
如果我添加该行
然后我发现结果更加难以理解。现在,当然,一旦我关闭了窗口,程序就会终止。但我又不明白为什么。框架将在堆栈上,但我看不到程序流在哪里,并且堆栈上的某些东西的存在不足以使程序保持活力,肯定吗?我错过了一些基本的东西,据我所知,我正在阅读的书中没有涵盖这些内容。我对此感到有些惊讶——到目前为止,“Head first Java”在指出细微之处和解释真正发生的事情方面做得非常好,但似乎没有解决这一点(至少我没有发现)。