Java 在Quartz明细表上的Swing textarea中插入文本
我有点糊涂,搞不懂这个。我已经为我的GUI类创建了一个方法,该方法将文本插入文本区域:Java 在Quartz明细表上的Swing textarea中插入文本,java,swing,quartz-scheduler,jtextarea,Java,Swing,Quartz Scheduler,Jtextarea,我有点糊涂,搞不懂这个。我已经为我的GUI类创建了一个方法,该方法将文本插入文本区域: public void setMyTextArea(String s) { this.myTextArea.insert(s,0); } 接下来,我想用quartz scheduler安排一个作业,但我想在文本区域显示某些数据。但是在我的工作中,我没有Gui的实例,所以我不能使用上面的方法,因为它不是静态方法。我不能使它成为静态的,因为myTextArea是一个不能是静态的字段 如何将
public void setMyTextArea(String s) {
this.myTextArea.insert(s,0);
}
接下来,我想用quartz scheduler安排一个作业,但我想在文本区域显示某些数据。但是在我的工作中,我没有Gui的实例,所以我不能使用上面的方法,因为它不是静态方法。我不能使它成为静态的,因为myTextArea
是一个不能是静态的字段
如何将Gui实例传递给作业?例如,我目前正在使用.usingJobData
传递数据,但我只看到传递布尔、浮点、整数、字符串、双精度,即标准类型的选项。我错过什么了吗?我可以用.usingJobData
传递对象吗
我的计划是将Gui实例传递给作业,然后让实例使用方法setMyTextArea()如果这不是正确的方法,请告诉我。谢谢 我假设您的GUI(例如,JFrame
实例)已创建并可见。你可以用
java.awt.Window
方法
public static Window[] getWindows()
获取已创建窗口的完整列表。反复浏览列表并找到所需的列表。然后将其传递给作业。没有使用JobData
方法的将接受对象引用
相反,您需要使用withput(字符串键,对象值)
然后,您可以使用作业生成器上的使用jobdata(JobDataMap newJobDataMap)
设置此映射
是一个不能是静态的字段
实际上它可以是静态场,为什么不呢
顺便说一句:gui上的所有更新必须在EDT线程中完成,请使用SwingUtilities.invokeLater从其他线程对gui执行更改是。作业可以传递给任何对象以在作业运行时使用
我可以用.usingJobData传递对象吗
JobDataMap可以接受“Object”类型的值。
因此,您始终可以创建一个映射,在其中放入一些必需的值并将其传递给您的作业。以前从未使用过Quartz Scheduler,但这行不是您要查找的吗Scheduler.scheduleJob(作业,触发器)代码>,取自文档页面,如果您滚动到所述页面的最底部,则此操作有效。非常感谢。这与getFrames()
之间有什么区别吗?事实上没有大的区别。我使用了更常见的方法,因为我不知道它可以扩展的GUI类,例如Window