从MATLAB访问Java常量时出现间歇性错误

从MATLAB访问Java常量时出现间歇性错误,java,matlab,swing,Java,Matlab,Swing,前面的小问题:如何可靠地访问Java类中的常量,例如javax.swing.JCheckBox.TRAILING 我正在使用MATLAB的Java集成来构建GUI。通常,在单元测试期间设置GUI时,MATLAB会给出以下错误: ??? No appropriate method, property, or field TRAILING for class javax.swing.JCheckBox. 但是,我一直无法在调试器中重现此错误,也无法找到一致导致此错误的操作序列。目前,我有两份MAT

前面的小问题:如何可靠地访问Java类中的常量,例如javax.swing.JCheckBox.TRAILING

我正在使用MATLAB的Java集成来构建GUI。通常,在单元测试期间设置GUI时,MATLAB会给出以下错误:

??? No appropriate method, property, or field TRAILING for class
javax.swing.JCheckBox.
但是,我一直无法在调试器中重现此错误,也无法找到一致导致此错误的操作序列。目前,我有两份MATLAB open,一份显示错误,另一份工作正常:

>> javax.swing.JCheckBox.TRAILING
ans =
    11

>> javax.swing.JCheckBox.TRAILING
??? No appropriate method, property, or field TRAILING for class
javax.swing.JCheckBox.
我可以证明MATLAB知道什么是JCheckBox:

>> javax.swing.JCheckBox
ans =
javax.swing.JCheckBox[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.5,border=javax.swing.plaf.BorderUIResource$CompoundBorderUIResource@108b647,flags=296,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2],paintBorder=false,paintFocus=true,pressedIcon=,rolloverEnabled=true,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=]
我可以看到,在错误情况下,SwingConstants接口丢失,使用structjavax.swing.JCheckBox枚举所有字段:

>> struct(javax.swing.JCheckBox)
ans = 
         BORDER_PAINTED_FLAT_CHANGED_PROPERTY: [1x1 java.lang.String]
                       MODEL_CHANGED_PROPERTY: [1x1 java.lang.String]
                        TEXT_CHANGED_PROPERTY: [1x1 java.lang.String]
                    MNEMONIC_CHANGED_PROPERTY: [1x1 java.lang.String]
                      MARGIN_CHANGED_PROPERTY: [1x1 java.lang.String]
          VERTICAL_ALIGNMENT_CHANGED_PROPERTY: [1x1 java.lang.String]
        HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY: [1x1 java.lang.String]
      VERTICAL_TEXT_POSITION_CHANGED_PROPERTY: [1x1 java.lang.String]
    HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY: [1x1 java.lang.String]
              BORDER_PAINTED_CHANGED_PROPERTY: [1x1 java.lang.String]
               FOCUS_PAINTED_CHANGED_PROPERTY: [1x1 java.lang.String]
            ROLLOVER_ENABLED_CHANGED_PROPERTY: [1x1 java.lang.String]
         CONTENT_AREA_FILLED_CHANGED_PROPERTY: [1x1 java.lang.String]
                        ICON_CHANGED_PROPERTY: [1x1 java.lang.String]
                PRESSED_ICON_CHANGED_PROPERTY: [1x1 java.lang.String]
               SELECTED_ICON_CHANGED_PROPERTY: [1x1 java.lang.String]
               ROLLOVER_ICON_CHANGED_PROPERTY: [1x1 java.lang.String]
      ROLLOVER_SELECTED_ICON_CHANGED_PROPERTY: [1x1 java.lang.String]
               DISABLED_ICON_CHANGED_PROPERTY: [1x1 java.lang.String]
      DISABLED_SELECTED_ICON_CHANGED_PROPERTY: [1x1 java.lang.String]
                                 WHEN_FOCUSED: 0
           WHEN_ANCESTOR_OF_FOCUSED_COMPONENT: 1
                       WHEN_IN_FOCUSED_WINDOW: 2
                          UNDEFINED_CONDITION: -1
                            TOOL_TIP_TEXT_KEY: [1x1 java.lang.String]
                                TOP_ALIGNMENT: 0
                             CENTER_ALIGNMENT: 0.5000
                             BOTTOM_ALIGNMENT: 1
                               LEFT_ALIGNMENT: 0
                              RIGHT_ALIGNMENT: 1
                                        WIDTH: 1
                                       HEIGHT: 2
                                   PROPERTIES: 4
                                     SOMEBITS: 8
                                    FRAMEBITS: 16
                                      ALLBITS: 32
                                        ERROR: 64
                                        ABORT: 128
请注意,缺少尾部和所有其他SwingConstants。通常,在调试过程中,我会做一些事情,使SwingConstants神奇地出现,但如果在使用常量之前将其放入代码中,这还不足以防止问题发生

我曾尝试设置断点或使用键盘在发生此错误时停止,但当我得到控制时,一切正常。其余的测试通过了,当我重新运行它时,整个测试套件都通过了。我在R2010b和R2012a上观察到了这一点,它们都是Windows 32和64位的


对于这种行为有什么解释吗?我该如何修复它?

Swing GUI对象应该只在计算机上构造和操作。