我正在开发一个包含多个TextField对象的应用程序,这些对象需要更新以反映关联的后端属性中的更改。 TextField不可编辑,只有后端可能会更改其内容。 据我所知,正确的方法是在一个单独的线程上运行繁重的计算,以免阻塞用户界面。 我使用javafx.concurrent.Task完成了这个javafx.concurrent.Task并使用updateMessage()函数向JavaFX线程传递了一个单值,该工作正常。 但是,我需要更新一个以上的价值,因为后端正在进行更新。 由于后端值是作为JavaFX属性存储的,所以我试着简单地将它们绑定到每个GUI元素的textProperty ,并让绑定完成工作。 然而,这不起作用。 在运行一会儿之后,即使后端任务仍在运行, TextField也会停止更新。 没有例外。 我也尝试使用Platform.runLater()主动更新TextField而不是绑定。 这里的问题在于, runLater()任务的调度速度比平台能够运行得快,所以GUI变得呆滞,即使在后端任务完成之后也需要时间来“赶上”。 我在这里find了几个问题: logging器条目翻译到用户界面停止更新随着时间的推移 JavaFX中的multithreading挂起UI 但我的问题依然存在。 总结:我有一个后端对属性进行更改,我希望这些更改显示在GUI上。 后端是一个遗传algorithm,所以它的操作被分解成几代。 我希望TextField在两代之间至less刷新一次,即使这会延误下一代。 更重要的是GUI比GA运行得更快。 如果我没有清楚问题,我可以发表一些代码示例。 UPDATE 我按照James_D的build议设法做到了。 为了解决后台不得不等待控制台打印的问题,我实现了一个缓冲的控制台。 它存储要在StringBuffer打印的string,并在调用flush()方法时将其附加到TextArea 。 我使用AtomicBoolean来防止下一代发生,直到刷新完成,因为它是由一个Platform.runLater() runnable完成的。 另外请注意,这个解决scheme非常慢。
我正在使用JTabbedPane,我需要在选项卡中添加一个closuresbutton来closures当前的一个。 我一直在寻找,据我所知我必须从JPanel扩展,并添加closuresbutton,因为他们在这里说但是,有没有办法添加延伸JTabbedPane的closuresbutton,还是有一个更简单的方法来做到这一点? 在此先感谢,我真的很感激你的时间和你的帮助。
java.rmi.ConnectException: Connection refused to host: 127.0.1.1; nested exception is: java.net.ConnectException: Connection refused at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:619) at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216) at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202) at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:128) at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:194) at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:148) at com.sun.proxy.$Proxy0.notifyMe(Unknown Source) at CallbackServerImpl.doCallback(CallbackServerImpl.java:149) at CallbackServerImpl.registerForCallback(CallbackServerImpl.java:70) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322) at sun.rmi.transport.Transport$1.run(Transport.java:177) at sun.rmi.transport.Transport$1.run(Transport.java:174) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:173) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808) […]
如何使用Netbeans将Java项目导出到JAR? 我找不到在Eclipse中的选项。
在Java中,我会做这样的事情: java.awt.GraphicsEnvironment ge = java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(); Font[] fonts = ge.getAllFonts(); 有没有Android的等价物?
我是json的新手。 我有一个程序来从JSON对象生成XML。 String str = "{'name':'JSON','integer':1,'double':2.0,'boolean':true,'nested':{'id':42},'array':[1,2,3]}"; JSON json = JSONSerializer.toJSON( str ); XMLSerializer xmlSerializer = new XMLSerializer(); xmlSerializer.setTypeHintsCompatibility( false ); String xml = xmlSerializer.write( json ); System.out.println(xml); 输出是: <?xml version="1.0" encoding="UTF-8"?> <o><array json_class="array"><e json_type="number">1</e><e json_type="number">2</e><e json_type="number">3</e></array><boolean json_type="boolean">true</boolean><double json_type="number">2.0</double><integer json_type="number">1</integer><name json_type="string">JSON</name><nested json_class="object"><id json_type="number">42</id></nested></o> 我最大的问题是如何写我自己的属性,而不是json_type =“数字”,也写我自己的子元素。
我希望能够从一组中删除多个元素,而我正在迭代它。 最初我希望迭代器足够聪明,以便下面的天真的解决scheme工作。 Set<SomeClass> set = new HashSet<SomeClass>(); fillSet(set); Iterator<SomeClass> it = set.iterator(); while (it.hasNext()) { set.removeAll(setOfElementsToRemove(it.next())); } 但是这会抛出一个ConcurrentModificationExceptionexception。 请注意,iterator.remove()将无法正常工作,因为我需要一次删除多个内容。 另外假定不能确定哪些元素要“即时”移除,但是可以写入方法setOfElementsToRemove() 。 在我的具体情况下,将需要大量的内存和处理时间来确定迭代时要删除的内容。 由于内存限制,制作副本也是不可能的。 setOfElementsToRemove()将生成一些我想要移除的SomeClass实例集合, fillSet(set)会用条目填充集合。 在search堆栈溢出后,我无法find这个问题的一个很好的解决scheme,但几个小时后休息我意识到以下将做的工作。 Set<SomeClass> set = new HashSet<SomeClass>(); Set<SomeClass> outputSet = new HashSet<SomeClass>(); fillSet(set); while (!set.isEmpty()) { Iterator<SomeClass> it = set.iterator(); SomeClass instance = it.next(); outputSet.add(instance); set.removeAll(setOfElementsToRemoveIncludingThePassedValue(instance)); } setOfElementsToRemoveIncludingThePassedValue()将生成一组要删除的元素,包括传递给它的值。 我们需要删除传递的值,所以set空。 我的问题是,是否有人有更好的方式来做这件事,或者是否有收集操作来支持这种清除。 此外,我想我会张贴我的解决scheme,因为似乎有需要,我想贡献堆栈溢出的优秀资源。
我基本上有一个字节matrix。 每一行(意思是字节[])代表一个图像。 如何创build一个电影(任何格式 – AVI,MPEG,无论),并将其保存为一个文件? 每个图像可以是以下之一: int JPEG Encoded formats. int NV16 YCbCr format, used for video. int NV21 YCrCb format used for images, which uses the NV21 encoding format. int RGB_565 RGB format used for pictures encoded as RGB_565. int YUY2 YCbCr format used for images, which uses YUYV (YUY2) encoding format. int YV12 […]
我想从服务器读取字节使用Socket程序,即我使用InputStream来读取字节。 如果我通过长度大小,我可以读取字节,但我不知道可能是什么长度。 所以我不能初始化字节数组。 我也试过while (in.read() != -1) ,我观察到它循环工作正常,当数据发送,但循环后的下一行是不可执行的,我觉得它仍然在寻找stream中的数据但没有数据。 如果我closures服务器连接,那么我的客户端将执行循环的下一行。 我不确定我哪里错了? this.in = socket.getInputStream(); int dataInt = this.in.read(); while(dataInt != -1){ System.out.print(","+i+"–"+dataInt); i++; dataInt = this.in.read(); } System.out.print("End Of loop"); 我得到的输出为: – ,1–0,2–62,3–96,4–131,5–142,6–1,7–133,8–2,9–16,10–48,11–56,12–1,13–0,14–14,15–128,16–0,17–0,18–0,19–48,20–0,21–0,22–0,23–0,24–0,25–1,26–0,27–0,28–38,29–114,30–23,31–20,32–70,33–3,34–20,35–1,36–133,37–48,38–51,39–49,40–52,41–49,42–55,43–49,44–52,45–52,46–54,47–55,48–50,49–51,50–52,51–48,52–53,53–56,54–51,55–48,56–48,57–57,58–57,59–57,60–57,61–57,62–57,63–57,64–56 但是没有输出: – End Of loop 请指导我如何closures循环? 期待您的回应。 提前感谢你们。
我现在用PhoneGap开发Android应用程序。 最近,当我尝试在HTML页面之间切换时,应用程序closures,并在LogCat中出现以下错误: 12-24 15:43:39.237: A/libc(23631): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 23631 (.example.app) 我在Google上search了一下这个错误,我知道它和设备的内存有关。 我find了一些解决scheme,但没有那么多,我意识到如何在PhoneGap中实现它们。 有没有人在这里遇到过这个错误? 我能做些什么来解决这个问题? 谢谢 :)