刚学会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 -对所有新连接使用SwingWorkerinsted并在服务器中调用一个方法,该方法在使用中调用方法runnablesDone()SwingWorkerJframeEventQueue.invokeLater..
3 - 或使用 PropertyChangeListener (不知何故不确定)
4 - 让每个 runnables 都有 s ref to Jframeand doEventQueue.invokeLater..