1

我有一个相当老的 Eclipse 插件,它在 Kepler 之前运行良好。在 Kepler 上,jTextFields 不允许输入文本。

我将代码减少到最低限度,试图找出问题所在,但我卡在这里。

public class BeanDialog extends Dialog
{
   public void open()
   {
      shell = new Shell(getParent(), getStyle());

      Composite composite = new Composite(shell, SWT.NO_BACKGROUND | SWT.EMBEDDED);
  composite.setSize(822, 480);
  final java.awt.Frame frame = SWT_AWT.new_Frame(composite);

      JTextField field1 = new JTextField(10);
      frame.add(field1);

      shell.pack();
      shell.open();

      Display display = getParent().getDisplay();
      while (!shell.isDisposed() && show) 
      {
         if (!display.readAndDispatch())
         {
            display.sleep();
         }
      }

      parentShell.close();
   }                        
}

文本字段正确显示,但我无法输入文本。我的环境是 OS X 10.7.5 上的 java SE 7 (1.7.0_51)。

该插件帮助我将非常复杂的自定义注释添加到代码中,因此我实际上需要修复它。

我试过使用:

import org.eclipse.swt.widgets.Text;

Text text = new Text(shell, SWT.NONE);
text.pack();

它可以工作,但更新所有代码将是一场噩梦。

任何人都可以提供任何建议吗?

4

0 回答 0