我有一个相当老的 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();
它可以工作,但更新所有代码将是一场噩梦。
任何人都可以提供任何建议吗?