Java 如何在Eclipse RCP中同步更改?
我有一个带有tableviewer的视图和另一个带有文本小部件的视图。当我在表格查看器中选择某个内容时,所选文本将显示在文本小部件中,我可以编辑该文本。编辑时如何使用文本小部件中的文本更新表格查看器 您只需收听Java 如何在Eclipse RCP中同步更改?,java,swt,eclipse-rcp,jface,Java,Swt,Eclipse Rcp,Jface,我有一个带有tableviewer的视图和另一个带有文本小部件的视图。当我在表格查看器中选择某个内容时,所选文本将显示在文本小部件中,我可以编辑该文本。编辑时如何使用文本小部件中的文本更新表格查看器 您只需收听SWT。验证文本中的,并相应地更新TableViewer数据: public static void main(String[] args) { final Display display = new Display(); Shell shell = new Shell(d
SWT。验证文本中的,并相应地更新TableViewer
数据:
public static void main(String[] args)
{
final Display display = new Display();
Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
shell.setText("StackOverflow");
final Text text = new Text(shell, SWT.BORDER);
text.addListener(SWT.Verify, new Listener()
{
@Override
public void handleEvent(Event e)
{
String oldString = text.getText();
String newString = oldString.substring(0, e.start) + e.text + oldString.substring(e.end);
/* SET STRING TO TABLEVIEWER DATA HERE */
System.out.println(newString);
}
});
shell.pack();
shell.open();
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
或者,如果您只想在用户更改完文本后更新表,请在文本上收听SWT.FocusOut
。我确信tableViewer将允许您添加onSelect事件处理程序。注册事件处理程序并检查事件并获取树的文本。。设置为文本框我可以将文本设置为文本框。但在那之后,如果我更改文本框中的文本,我需要更新表中的文本以显示文本框中的文本。