【发布时间】:2013-04-29 10:55:58
【问题描述】:
这是我想要做的:
我有一个JFrame,其中包含一个JTextArea,显示正在进行的连接的更新。如果用户想取消连接,应该能够按其右侧的JButton。但是,由于连接在尝试连接时阻塞(使用)线程,所以 GUI 会冻结。我正在寻找快速修复。可能在单独的线程上拥有ActionListener?尽管我可以基本使用可运行对象,但我对线程没有太多经验。
答案是否与使用 EDT 有关?如果是这样应该如何实现?
PS 澄清一下,按钮应该能够杀死创建连接的线程。看完好像是一个executorService。可以帮忙吗?是的?还是根本没有?
【问题讨论】:
-
所以不能在连接上使用超时参数?
-
这实际上是在建立连接并且设备使用文本协议进行通信之后。如果其他设备没有响应,我希望能够取消尝试,即我会在尝试从网络读取流时卡住。
标签: java multithreading swing