http://outofmemory.cn/code-snippet/3620/java-with-event-drive-single-xiancheng-yibu-skeleton https://www.cnblogs.com/KingIceMou/p/8075343.html