草庐IT

event-dispatch-thread

全部标签

java - java.awt.Robot.waitForIdle() 是否等待事件被分派(dispatch)?

我正在使用java.awt.Robot对我的Swing应用程序进行集成测试,但我无法按正确的顺序运行我的操作。我如何告诉调用robot.mousePressed(...)的线程阻塞,直到Swing完成调度该事件?显然,robot.setAutoWaitForIdle(true)没有任何好处。这是我的演示。我期待“机器人完成!”消息总是在“Actionfinishedblocking.”之后出现,但它通常发生得太快了。importjava.awt.AWTException;importjava.awt.GraphicsConfiguration;importjava.awt.Graphi

java - 回合制游戏设计 : Event-Driven vs. 游戏循环

我正在用Java创建我的第一款游戏。游戏是大富翁。我正在为如何设计游戏来模拟其回合制结构(管理玩家回合)而苦苦挣扎。我想允许一个人控制的玩家和一个或多个人工智能控制的玩家玩游戏。我的具体问题是,我不知道是否要实现一个游戏循环,意思是一个可以管理玩家和与大富翁游戏直接相关的变量的循环,(想想诸如提示每个玩家他们的回合,将回合增加到下一个玩家,或者从每个玩家那里获得骰子——轮流)。我指的不是术语“游戏循环”的更底层含义,它更多地涉及在屏幕上绘制帧、更新物理或以特定时间速率更新AI。我的理解是,我尝试实现我需要的选项是:实现一个没有此类游戏循环的完全事件驱动的程序,或者实现一个游戏循环——在

java - 请解释 Thread run() 和 start() 方法的输出

请解释以下代码的输出:如果我调用th1.run(),输出是:EXTENDSRUN>>RUNNABLERUN>>如果我调用th1.start(),输出是:RUNNABLERUN>>EXTENDSRUN>>为什么会出现这种不一致?请解释。classThreadExampleextendsThread{publicvoidrun(){System.out.println("EXTENDSRUN>>");}}classThreadExampleRunnableimplementsRunnable{publicvoidrun(){System.out.println("RUNNABLERUN>>

java - 如何避免使用 Thread.Sleep

在我下载最新版本的Netbeans之前,我从未考虑过Thread.Sleep的使用。Netbeans现在警告您不要使用Thread.Sleep。因此,我对该主题进行了一些研究,发现有人说您只需要将Thread.Sleep用于调试/测试目的,如果您在任何其他时间使用它,您的代码就会写得不好。所以我的问题是在以下情况下如何避免使用Thread.Sleep。我编写了一个与另一个应用程序交互的服务器应用程序。服务器有两个线程:处理来自套接字的数据并发回其他信息或只是简单的确认。这是主线程。启动套接字线程后,它会进入一个无限期的while循环。在这个while循环中,我检查以确保套接字线程仍然处

java.rmi.ServerException : RemoteException occurred in server thread (ClassNotFoundException) 异常

以下方法:privatevoidstartServer(){//snippetthatstartstheserveronthelocalmachinetry{RemoteMethodImplimpl=newRemoteMethodImpl();Naming.rebind("Illusive-Server",impl);}catch(Exceptionexc){JOptionPane.showMessageDialog(this,"Problemstartingtheserver","Error",JOptionPane.ERROR_MESSAGE);System.out.println

java - Thread.sleep 等待时间超过预期

以下代码:longmsBefore=System.currentTimeMillis();//Thread.currentThread().setPriority(Thread.MAX_PRIORITY);try{Thread.sleep(200);}catch(InterruptedExceptione){}System.out.println("Time:"+(System.currentTimeMillis()-msBefore));打印:Time:578Time:594Time:625Time:640Time:641Time:609Time:625Time:625Time:61

java - hibernate 异常 : Could not obtain transaction-synchronized Session for current thread

我遇到错误:Exceptioninthread"main"org.hibernate.HibernateException:Couldnotobtaintransaction-synchronizedSessionforcurrentthread主要ppService.deleteProductPart(cPartId,productId);@Service("productPartService")@OverridepublicvoiddeleteProductPart(intcPartId,intproductId){productPartDao.deleteProductPart

java - JavaFX中Event consumes的含义是什么

我试图理解EventHandlinginJavaFX在那里我找到了这条线。Theroutecanbemodifiedaseventfiltersandeventhandlersalongtherouteprocesstheevent.Also,ifaneventfilteroreventhandlerconsumestheeventatanypoint,somenodesontheinitialroutemightnotreceivetheevent.你能解释一下eventconsumes是什么意思吗? 最佳答案 事件沿着特定的路线

java - 事件派发线程在哪里调用?

我读到所有构造Swing组件和处理事件的代码都必须由事件调度线程运行。我了解这是如何通过使用SwingUtilities.invokeLater()方法完成的。考虑以下代码,其中GUI初始化是在main方法本身中完成的publicclassGridBagLayoutTesterextendsJPanelimplementsActionListener{publicGridBagLayoutTester(){setLayout(newGridBagLayout());GridBagConstraintsgbc=newGridBagConstraints();JButtonbutton=n

java - JavaFX 中的复杂并发 : using ObservableLists and Properties from multiple worker threads

我有多个工作线程和一个JavaFXGUI,它报告这些线程中发生的事情。线程之间共享的数据很多,需要可视化。所以我使用ObservableList和Property能够轻松地在JavaFX中显示数据。我制作了一个小示例应用程序来展示与我的应用程序中发生的情况类似的内容。它有2个列表,工作线程将数据从一个列表移动到另一个列表。状态字符串保持最新。完整的示例代码可以在http://codetidy.com/6569/找到(此代码会崩溃,稍后查看)这是共享的ObservableList的&属性:privateObservableListnewItems;privateObservableLis