摆动和标签setText不起作用

问题描述:

我需要一点帮助摆动。这是我的代码:摆动和标签setText不起作用

public class UIdostawca extends javax.swing.JFrame { 


    /** Creates new form UIdostawca */ 
    public UIdostawca() { 
     initComponents(); 
     setDefaultCloseOperation(javax.swing.JFrame.HIDE_ON_CLOSE); 
    } 

    /* This is my function */ 
    public void loadStuff() { 
     jLabel2.setText("Works or not?"); 
    } 


    /* 
     A lot of code generated by NETBEANS 
    */ 


    // Variables declaration - do not modify 
    private javax.swing.JLabel jLabel2; 

} 

我用这样的:

UIdostawca a = new UIdostawca(); 

a.loadStuff(); 

和jLabel2没有改变;(

然而,当在执行

jLabel2.setText("Works or not?"); 

功能如formWindowOpened

一切正常

+0

嗯,你可以在你调用'a.loadStuff()' – GETah 2011-12-22 19:29:59

+0

后重新设置'jLabel2'文本,你能粘贴完整的代码吗? – 2011-12-22 19:34:07

+0

基于发布的随机代码行,我们无法提供太多帮助。您需要发布证明问题的正确的[SSCCE](http://www.sscce.org)。 – camickr 2011-12-22 19:35:49

这是一个多线程问题。调用formWindowOpened时,它由Swing事件调度线程(EDT)调用,该线程与绘制接口的线程相同,因此它具有要绘制的正确的文本值。

如果您从某个其他线程调用setText,EDT可能无法获得正确的文本值。无论您在其他某个线索中拨打setText,都必须将其包装在SwingUtilities.invokeLater()中,这会改变EDT上的文本值。

在第一种情况下,你是否初始化jLabel2?

+0

是的,当然.. :) – Domiik 2011-12-22 19:33:44

+0

你可以发布该代码以及发生在UIdostawca a = new UIdostawca()之间的任何其他缓解代码。和a.loadStuff(); – Grammin 2011-12-22 19:34:45

+0

问题是,之间没有代码... – Domiik 2011-12-22 19:37:59