小编Jay*_*yan的帖子

java SwingWorker.doInBackground()不能访问GUI元素

可能这是微不足道的,我很难理解SwingWorker上的简单文档.

这是复制粘贴的内容

工作流程

SwingWorker的生命周期涉及三个线程:

当前线程:在此线程上调用execute()方法.它安排SwingWorker在工作线程上执行并立即返回.可以等待SwingWorker使用get方法完成.

工作线程:在此线程上调用doInBackground()方法.这是所有背景活动应该发生的地方.要通知PropertyChangeListeners有关绑定属性的更改,请使用firePropertyChange和getPropertyChangeSupport()方法.默认情况下,有两个绑定属性:状态和进度.

事件调度线程:此线程上发生所有与Swing相关的活动.SwingWorker调用process和done()方法并通知此线程上的任何PropertyChangeListeners.

通常,Current线程是Event Dispatch Thread.

-

工作线程不是EDT,因此doInBackground()中的代码不能访问GUI元素.我的理解是否正确?

背景:我们有使用SwingWorker的小代码,但有doInBackground()创建FileChooser并调用setCurrentDirectory().我怀疑这导致我异常几乎与 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6637181(11-Closed,not a defect)相同

java swing swingworker event-dispatch-thread

7
推荐指数
1
解决办法
4538
查看次数

使用ANT替换xml文件中的属性

我正在尝试使用ANT脚本替换build.xml文件中的版本号.

我尝试了各种方法,搜索并重新搜索StackOverflow以获得答案,但无法获得确切的查询.

所以这是我的xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.0"?>

<project name="feature" default="main" basedir=".">
<target name="init">    
    <property name="Version" value="1.0.0.20120327"/>
</target>

    <target name="main" depends="init">
    <description>Main target</description>
</target>
</project>
Run Code Online (Sandbox Code Playgroud)

现在你可以看到版本有昨天的日期.我需要用当前日期替换它.

这是我尝试过的:

<target name="replace">
    <tstamp >
    <format property="touch.time" pattern="yyyyMMdd"/>  
    </tstamp>   

<property name="Feature.dir" location="../feature" />

<!--Didnt Work-->       
 <copy file="${Feature.dir}\build.xml" tofile="${Feature.dir}\build1.xml"
filtering="yes" overwrite="yes">
<filterset>
    <filter token="Version" value="1.0.0.${touch.time}"/>
</filterset>
  </copy>

  <!--Didnt work

   <replacetoken><![CDATA[<property name="Version" value=""/>]]>  
   </replacetoken>  
   <replacevalue><![CDATA[<property name="Version"value="1.0.0.${touchtime}" />]]>
   </replacevalue>

   -->  


<!-- Didnt work 
    <copy file="${Feature.dir}/build.xml" tofile="${Feature.dir}/build1.xml" >
        <filterchain>
        <tokenfilter>
                <replaceregex pattern="^[ \t]*Version[ \t]*=.*$"
                              replace="Version=1.0.0.${touch.time}"/>
        </tokenfilter>
            </filterchain>
</copy> …
Run Code Online (Sandbox Code Playgroud)

ant replace

7
推荐指数
1
解决办法
6429
查看次数

Excel连续x轴绘制时间序列频率

我想绘制一个类似于下面的时间序列频率数据.我尝试了很多类型的图表,但他们都把时间(即08:00)完全放在数据系列列下,我也尝试输入8-9,9-10,10-11 ......但这看起来很糟糕只是因为时间系列需要连续.我希望有8:00和18:00作为起点和终点,数据系列应该在8-9-10-11之间等间隔.有什么建议吗?

08:00:00 - 09:00:00     12
09:00:00 - 10:00:00     11
10:00:00 - 11:00:00     13
11:00:00 - 12:00:00     12
Run Code Online (Sandbox Code Playgroud)

excel plot time-series

7
推荐指数
2
解决办法
10万
查看次数

Jenkins获得构建和参数列表

我想对Jenkins进行API调用,以获取构建列表及其参数和状态.我们当前传递一个git commit sha1作为参数来构建一个特定的分支.我有什么想法可以轻松获取这些信息吗?

api jenkins

7
推荐指数
2
解决办法
2万
查看次数

BTrace的开销是多少?

在BTrace文档中提到BTrace在空闲时几乎没有开销.这是否意味着BTrace仅具有开销,并且仅在满足某些探测并且正在处理时?

此外,在处理Probe时,需要一些CPU来进行处理.但它是否会对JVM内存或任何其他可能影响原始JVM进程处理的事情产生影响?

java trace jvm btrace

6
推荐指数
1
解决办法
570
查看次数

IllegalAccessError:class <classname>无法访问其超接口<interfacename>

我有类汇编实现IAssembly.

启动应用程序时看到以下错误

Caused by: java.lang.IllegalAccessError: class <Assembly > cannot access its superinterface <IAssembly>
        at java.lang.ClassLoader.defineClass1(Native Method)
Run Code Online (Sandbox Code Playgroud)

汇编代码

class package.Assembly implements IAssembly {

}
Run Code Online (Sandbox Code Playgroud)

IAssembly

interface IAssembly { //note -this is not public, so uses default protected

}
Run Code Online (Sandbox Code Playgroud)

装配和IAssembly存在于两个不同的罐子中.两个罐子都由不同的类加载器加载.Assembly类加载在子类加载器中,IAssembly是父类.类加载器正在使用链接.

在正常情况下,这是有效的.在使用cobertura检测罐子后运行我的应用程序时发生错误.没有仪器,一切正常.cobertura仪器会导致这样的错误吗?或者这是一个等待被检测到的错误,但是对于cobertura,错误很快就会暴露出来.

通过使界面"公开",错误消失了.

java cobertura classloader

6
推荐指数
1
解决办法
7301
查看次数

从类(jar)自动创建测试代码

我们有数千个课程,没有任何真正的单元测试覆盖.作为特殊项目,我们的目标是为所有人提供合理的保障 一种选择是从源代码创建测试并使用IJ的GenerateTestCases插件.

我正在探索其他选项,以大规模创建测试..

是否可以从类文件创建测试(好的,只是测试模板)?TestGen4J执行此操作,但该项目似乎处于非活动状态.是否有任何工具可以帮助创建数千个类的测试.

一旦生成了这样的测试,我希望我们有更多动力为现有类添加更多单元测试.

java unit-testing bytecode

6
推荐指数
1
解决办法
340
查看次数

<zipfileset>与ant中的<fileset>

ant构建工具提供了两个不同的任务<fileset/><zipfileset/>.根据文档<zipfileset/>,如果我们使用src属性,我们可以从.zip文件中提取文件.

我的问题是,如果我们使用dir属性来选择文件,那么两者之间有什么区别, <zipfileset/><fileset/>.

例如

                <zipfileset dir="conf/Gateway>
                <include name="jndi.properties" />
                </zipfileset>

                                 and

                <fileset dir="conf/Gateway>
                <include name="jndi.properties" />
                </fileset>
Run Code Online (Sandbox Code Playgroud)

ant

6
推荐指数
1
解决办法
7429
查看次数

如何在groovy中将boolean(true或false)转换为字符串值?

def setOnePlueOne(def user, def booleanValue) {
    updateAnswerAttribute(userRandy, ??????)
    ..
}
Run Code Online (Sandbox Code Playgroud)

所以我要做的就是将其转换boolean为字符串,并updateAnswerAttribute在DB中将其转换为"true"或"false".

添加了getter和setter

public Boolean setOnePlueOne() {
    return OnePlueOne;
}
public void getOnePlueOne(Boolean onePlueOne) {
    this.onePlueOne = onePlueOne;
Run Code Online (Sandbox Code Playgroud)

现在我需要在string(true或false)中转换它(Boolean onePlueOne)并通过set方法将其发送到def booleanValue.

def setOnePlueOne(def user, def booleanValue) {
updateAnswerAttribute(userRandy, ??????) this will update or create value in DB 
Run Code Online (Sandbox Code Playgroud)

groovy boolean

6
推荐指数
2
解决办法
2万
查看次数

Gradle 测试执行程序完成了一个非常奇怪的非零退出代码 (-1073740791)

我们在 gradle 中使用自定义测试任务,它接受包含要执行的测试列表的文本文件。除了其他参数(例如属性文件、测试结果位置等),我们还将 --no-daemon --no-build-cache --no-parallel 作为参数传递给此任务。

有时,我们在执行任务时会遇到失败。测试任务中的任务执行程序失败,并显示奇怪的非零退出代码

Caused by: org.gradle.process.internal.ExecException: Process 'Gradle Test Executor 4' finished with non-zero exit value -1073740791
This problem might be caused by incorrect test process configuration.

Run Code Online (Sandbox Code Playgroud)

这是完整的堆栈跟踪:

> Task :runTestlistFromFile FAILED
:runTestlistFromFile (Thread[Daemon worker,5,main]) completed. Took 36 mins 44.967 secs.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':runTestlistFromFile'.
> Process 'Gradle Test Executor 4' finished with non-zero exit value -1073740791
  This problem might be caused by incorrect …
Run Code Online (Sandbox Code Playgroud)

java junit jvm gradle

6
推荐指数
0
解决办法
564
查看次数