Pav*_*din 3 java swt jface eclipse-rcp
我有很多控件,视图和编辑器.我发现编辑有时会失去焦点.这个问题很难在调试中重现,因为当我在调试器中切换到断点并返回应用程序时,编辑器永远不会失去焦点.
你能推荐一些提示和技巧来找出控制失去焦点的原因吗?
在@david的答案中添加一些上下文:
你可以添加一个FocusListener你Widget的所有.在此侦听器中,您可以输出有关丢失/获得焦点的窗口小部件的一些信息.
为了简化操作,您可以Widget使用向s 添加元数据Widget#setData(Object).
这是一个代码示例,可以帮助您解决问题:
public static void main(String[] args)
{
Display display = new Display();
final Shell shell = new Shell(display);
shell.setText("StackOverflow");
shell.setLayout(new FillLayout());
FocusListener focusListener = new FocusListener()
{
@Override
public void focusLost(FocusEvent e)
{
System.out.println("Focus out: " + e.widget.getData());
}
@Override
public void focusGained(FocusEvent e)
{
System.out.println("Focus in: " + e.widget.getData());
}
};
Text text = new Text(shell, SWT.BORDER);
text.setText("Text");
text.setData("Text");
text.addFocusListener(focusListener);
Button button = new Button(shell, SWT.PUSH);
button.setText("Button");
button.setData("Button");
button.addFocusListener(focusListener);
shell.pack();
shell.open();
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
Run Code Online (Sandbox Code Playgroud)
注意使用setData()和getData()......
| 归档时间: |
|
| 查看次数: |
606 次 |
| 最近记录: |