我有一个JFace对话框,其中包含SWT文本和一个按钮。最初打开对话框时,应该禁用该按钮,当我单击Text
时,只要Text
的插入位置是可见按钮,就应该启用。
这些是我正在使用的听众:
text.addMouseListener(new MouseListener()
{
@Override
public void mouseDoubleClick(MouseEvent arg0)
{
}
@Override
public void mouseDown(MouseEvent arg0)
{
}
@Override
public void mouseUp(MouseEvent arg0)
{
testButton.setEnabled(true);
}
});
text.addFocusListener(new FocusListener() {
@Override
public void focusLost(FocusEvent arg0)
{
testButton.setEnabled(false);
}
@Override
public void focusGained(FocusEvent arg0)
{
}
});
我使用适当的听众吗?请建议
答案 0 :(得分:1)
如果我理解正确,这应该是你想要的:
button.setEnabled(false);
button.addListener(SWT.Selection, new Listener()
{
@Override
public void handleEvent(Event arg0)
{
button.setEnabled(false);
}
});
text.addListener(SWT.FocusIn, new Listener()
{
@Override
public void handleEvent(Event e)
{
button.setEnabled(true);
}
});
最初,Button
已停用。一旦Text
获得焦点,它就会启用。按下后Button
将再次被禁用。