如何取消SwingWorker的执行?

目前我有两个SwingWorker线程在后台工作。 如果发生exception,该方法停止工作,但线程仍然运行。 如果发生exception,我该如何停止执行并杀死doInBackground()的线程? this.cancel(true)不会销毁/closures线程。 我怎样才能做到这一点? @Override protected Boolean doInBackground() throws Exception { try { while (true) { //some code here return true; } } catch (Exception e) { this.cancel(true); //<– this not cancel the thread return false; } } 我在NetBeans的debugging中看到这些线程。 'AWT-EventQueue-0' em execução 'AWT-Windows' em execução 'SwingWorker-pool-1-thread-1' em execução 'SwingWorker-pool-1-thread-2' em execução //*em execução = […]

为什么这个部门不能在Python中工作?

考虑: >>> numerator = 29 >>> denom = 1009 >>> print str(float(numerator/denom)) 0.0 我如何使它返回一个小数?

…你在AndroidManifest.xml中声明了这个活动吗?

我用意图指向下一个活动,但是当我点击button,我得到以下错误。 03-29 11:25:55.414: E/AndroidRuntime(3921): FATAL EXCEPTION: main \ **03-29 11:25:55.414: E/AndroidRuntime(3921): android.content.ActivityNotFoundException: Unable to find explicit activity class {mycube.test/mycube.test.Compte}; have you declared this activity in your AndroidManifest.xml?** 03-29 11:25:55.414: E/AndroidRuntime(3921): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1405) 03-29 11:25:55.414: E/AndroidRuntime(3921): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1379) 03-29 11:25:55.414: E/AndroidRuntime(3921): at android.app.Activity.startActivityForResult(Activity.java:2827) 03-29 11:25:55.414: E/AndroidRuntime(3921): at android.app.Activity.startActivity(Activity.java:2933) 03-29 11:25:55.414: E/AndroidRuntime(3921): at mycube.test.Menu.onClick(Menu.java:143) 03-29 11:25:55.414: E/AndroidRuntime(3921): […]

将文本居中放置在柔性盒中的图像上

我怎样才能居中alignment文本<img>最好使用FlexBox? body { margin: 0px; } .height-100vh { height: 100vh; } .center-aligned { display: box; display: flex; box-align: center; align-items: center; box-pack: center; justify-content: center; } .background-image { position: relative; } .text { position: absolute; } <section class="height-100vh center-aligned"> <img class="background-image" src="http://vignette2.wikia.nocookie.net/uncyclopediahttp://img.dovov.comf/f8/Stand-out-in-the-crowd-300×300.jpg" /> <div class="text">SOME TEXT</div> </section>

如何计算文本在JTextArea中所占的行数(以及每行的列数)?

在对这个问题中提出的问题感兴趣之后,我尝试了几次,失败了,我不喜欢那样:) 我认为,如果问题分解成小问题,可能有助于解决问题。 为了简单起见,假设JTextArea不会改变它的大小,所以我们不需要担心重新评估等。我认为重要的问题是: 1.如何计算某个文本在JTextArea中所占的行数? 2.JTextArea中的列数与它可以放在一行中的字符数之间的关系是什么? 所以我们可以计算行长。 请在下面find提供要处理的文本区域的示例代码: import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.SwingUtilities; public class TextAreaLines { public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { JPanel p = new JPanel(); JFrame f = new JFrame(); JTextArea ta = new JTextArea("dadsad sasdasdasdasdasd"); ta.setWrapStyleWord(true); ta.setLineWrap(true); ta.setRows(5); ta.setColumns(5); p.add(ta); f.setContentPane(p); […]

string常量池

正如在这些Stackoverflow的问题所解释的: 问题1和问题2我明白,“ string文字 ”是interned在下列情况下: String s = "abc"; 而且,当以下情况时,JVM将创build一个新的String对象,而不是使用string池中现有的对象: String s = new String("abc"); 但是,在阅读以下两个类似的陈述之后,我有一个疑问。 从SCJP准备书 : 当编译器遇到一个string时,它会检查这个池是否存在一个相同的string。 如果find匹配项,则对新文字的引用将定向到现有的string,并且不会创build新的string字面值对象。 从JavaRanch: 在这种情况下,由于关键字“new”,我们实际上最终会有一个稍微不同的行为。 在这种情况下,对string文字的引用仍然放在常量表(string文字池)中,但是,当您使用关键字“new”时,JVM有义务在运行时创build一个新的String对象,而不是使用常量表中的一个。 所以如果我们在非池内存AND池内存中使用“new”创build一个对象,并且基于上面的定义,我们也会引用它。 当我们这样做时,JVM是否也应该返回相同的参考? : String one = new String("test"); String two = "test"; System.out.println(one.equals(two)); // true System.out.println(one == two); // false 因为在声明string时, String three = "test"; 它将已经存在于游泳池? 因此应该返回相同的参考和打印真实? 或者做以前的陈述意味着他们将被放入池内存中,但是当使用new操作符时,只是简单地跳过?

如何在JavaScript中dynamic访问本地作用域?

如果要dynamic使用全局函数和variables,可以使用: window[functionName](window[varName]); 是否有可能做同样的事情在本地范围内的variables? 此代码正常工作,但目前使用eval,我试图想如何做到这一点。 var test = function(){ //this = window var a, b, c; //private variables var prop = function(name, def){ //this = window eval(name+ ' = ' + (def.toSource() || undefined) + ';'); return function(value){ //this = test object if ( !value) { return eval('(' + name + ')'); } eval(name + ' […]

具有可变数量的组的正则expression式?

是否有可能创build一个具有可变数量的组的正则expression式? 运行这个例如… Pattern p = Pattern.compile("ab([cd])*ef"); Matcher m = p.matcher("abcddcef"); m.matches(); …我想有类似的东西 m.group(1) = "c" m.group(2) = "d" m.group(3) = "d" m.group(4) = "c" 。 (背景:我正在parsing一些数据行,其中一个“字段”是重复的,我想避免这些字段的matcher.find循环。 正如@Tim Pietzcker在评论中指出的, perl6和.NET有这个特性。

存储的数据奇怪的字符编码,旧的脚本显示他们罚款新的没有

我正在尝试重写一个旧网站。 它是使用perso /阿拉伯字符的波斯语。 CREATE DATABASE `db` DEFAULT CHARACTER SET utf8 COLLATE utf8_persian_ci; USE `db`; 几乎所有我的表/列COLLATE都设置为utf8_persian_ci 我使用codeigniter为我的新脚本,我有 'char_set' => 'utf8', 'dbcollat' => 'utf8_persian_ci', 在数据库设置中,那里没有问题。 所以这里是奇怪的部分 旧的脚本正在使用某种名为TUBADBENGINE或TUBA DB ENGINE …没什么特别的。 当我使用旧脚本在数据库(波斯语)中input一些数据时,当我查看数据库时,字符被存储为عمران 。 旧脚本获取/显示数据正常,但新脚本显示与数据库相同的怪异字体/字符集 所以,当我inputاااا ,数据库存储的数据看起来像عمرا٠,当我在新脚本中获取它我看到عمراÙ但在旧的脚本我看到اااا CREATE TABLE IF NOT EXISTS `tnewsgroups` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `fName` varchar(200) COLLATE utf8_persian_ci DEFAULT NULL, PRIMARY KEY (`ID`) […]

使用睡眠()为单个线程

我相当新的Java,并开始进入使用不同的线程,以便对我的代码的一部分使用wait()或sleep() ,并让其他人仍然运行。 对于这个项目,我正在使用带有javax.swing.*和java.awt.* JFrame导入。 我想要做的是有一个线程(在我的代码中,它是主要的起始线程)允许玩家在井字棋板上select一个空间,当他们点击它时,它会改变图标,那么AI会等待1秒,然后再从我创build的第二个线程回放。 不幸的是,每当我调用ait.sleep(1000) ( ait是我的线程名)时,两个线程在完成执行之前等待1秒钟。 谁能告诉我为什么睡一个线程是停止我的整个执行?