刚学会SwingWorker
并有一个问题
(我已经搜索了这个问题的答案,但没有专门解决这个设置)
我正在创建一个小型服务器,它最多只能同时连接 2-3 个连接。
我正在使用Jframe
具有内部类的SwingWorker
在 SwingWorkerdoInBackground()
我有:
while(true) {
Socket client_socket = listen_socket.accept();
Connection con = new Connection(client_socket, "name");
Future<Connection> future = es.submit(con , con );
tasks.add(future);
}
Connection
是 arunnable
并声明为 中的子类SwingWorker
。
在runnable
完成之前,它会在 SQL 中写入一个条目。
那么这个runnable如何在它死之前向Jframe
事件调度线程发送一个提示。
并且Jframe
将检查新条目的 SQL 并将其显示给用户。
最好做什么:
1 - 创建一个接口,所有可运行的都可以向Jframe
事件调度线程发送消息。
2 -对所有新连接使用SwingWorker
insted并在服务器中调用一个方法,该方法在使用中调用方法runnables
Done()
SwingWorker
Jframe
EventQueue.invokeLater..
3 - 或使用 PropertyChangeListener (不知何故不确定)
4 - 让每个 runnables 都有 s ref to Jframe
and doEventQueue.invokeLater..