在netbeans中从main方法操作jLabel

时间:2015-11-03 15:28:48

标签: java swing

我正在尝试从main方法更改jLabel中的文本,原因是因为我需要满足条件才能使更改发生并且不是基于触发器的。

代码:

public class TheMain extends javax.swing.JFrame {


    public TheMain() {
        initComponents();
    }

public void changeLabel1(){
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
               jLabel1.setText("looo");
            }
        });
    }

    public void changeLabel2(){
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
               jLabel2.setText("looo");
            }
        });

    }

    public static void main(String args[]) {
         TheMain some = new TheMain();
         if(condition){
             some.changeLabel1();
         }else{
             some.changeLabel2();
         }
    }

}

我尝试在changelabel1changelabel2中打印一些内容,只是为了检查它们是否被成功调用并且确实打印了但是我猜测它们无法在其中实现UI更改,或者我错了吗?

1 个答案:

答案 0 :(得分:2)

 if (somMap.get(ky) != null){
      String val = someMap.get(ky)
      //do something }

上述logice需要在TheMain类中定义,因为这是定义标签变量的地方。

main()方法仅用于创建GUI。 main()方法中应该没有应用程序逻辑。