Я построил FileDialog
и после того, как пользователь выделил файл, в нем должна быть обновлена метка с именем файла. Это то, что у меня есть:Как обновить ярлык SWT?
Button buttonSelectFile;
fileFilterPath = "C:/";
Label myDir;
fileSelectionLabel = new Label(container, SWT.None | SWT.WRAP);
fileSelectionLabel.setText("Path to file");
buttonSelectFile = new Button(container, SWT.PUSH);
buttonSelectFile.setText("Select file");
buttonSelectFile.addListener(SWT.Selection, new Listener() {
@Override
public void handleEvent(Event event) {
Shell shell = new Shell();
FileDialog fileDialog = new FileDialog(shell, SWT.MULTI);
fileDialog.setFilterPath(fileFilterPath);
fileDialog.setFilterExtensions(new String[] { "*.exe" });
fileDialog.setFilterNames(new String[] { "exe-files" });
String files = fileDialog.open();
if (files != null) {
fileFilterPath = fileDialog.getFilterPath();
selectedFile = fileDialog.getFileName();
StringBuffer sb = new StringBuffer(
"Selected file under directory "
+ fileDialog.getFilterPath() + "\n");
sb.append(selectedFile);
}
}
});
myDir = new Label(container, SWT.None);
new Label(container, SWT.None).setText("");
Я пытался дозвониться myDir.setText(fileFilterPath)
внутри метода handleEvent()
. Также попытался позвонить по телефону myDir.layout()
, myDir.refresh()
и myDir.getParent().layout()
. Метка не обновляется.
Как обновить текст ярлыка?
Что расположение делает ' контейнер' использование? – Baz
@Baz org.eclipse.swt.widgets.Composite – John
Это вид виджета, но что такое макет? – Baz