更改静态检查按钮java上的选择

时间:2013-02-26 12:18:18

标签: java button swt

我有点问题。我正在尝试将字符串与数组进行比较。在串行线上接收字符串后构建阵列。

我使用了几个空洞并在它们之间传递字符串和数组,所以每个东西都必须是静态的。

// button is set
public static  Button btnRS_1;
// inside Create contense:
            btnRS_1 = new Button(shlSioMiniTest, SWT.TOGGLE);
        btnRS_1.setEnabled(false);
        btnRS_1.setSelection(false);;
        btnRS_1.setFont(SWTResourceManager.getFont("Tahoma", 10, SWT.NORMAL));
        btnRS_1.setBounds(29, 130, 76, 16);
        btnRS_1.setText("RS232 0");

        if (RStest[0].equals("1")){
          btnRS_1.setSelection(true);
           }

我收到错误。其中很多也是。如果我注释掉setSelection位并打印出一个字符串,看它是否有效。

Exception in thread "Thread-9" org.eclipse.swt.SWTException: Invalid thread access
    at org.eclipse.swt.SWT.error(SWT.java:4361)
    at org.eclipse.swt.SWT.error(SWT.java:4276)
    at org.eclipse.swt.SWT.error(SWT.java:4247)
    at org.eclipse.swt.widgets.Widget.error(Widget.java:468)
    at org.eclipse.swt.widgets.Widget.checkWidget(Widget.java:359)
    at org.eclipse.swt.widgets.Button.setSelection(Button.java:1047)
    at SioTest.Sio_test.fillChecks(Sio_test.java:604)
    at SioTest.Sio_test.testParameters(Sio_test.java:592)
    at SioTest.Sio_test$ProtocolImpl.onMessage(Sio_test.java:968)
    at SioTest.Sio_test$ProtocolImpl.onReceive(Sio_test.java:946)
    at SioTest.Sio_test$SerialReader.run(Sio_test.java:882)
    at java.lang.Thread.run(Unknown Source)

有人可以告诉我该做什么吗?

1 个答案:

答案 0 :(得分:-1)

请阅读以下链接:Invalid access exception

看起来你是从SWT展示线程外面调用的东西