代码如下
Botão buttonIconBrowse;
Botão buttonSetIcon;
Imagem shellIcon;
Botão de imagemÍcone;
public IconSelector() {
inicializarUI();
shell.pack();
shell.open();
enquanto (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
private void inicializeUI() {
GridLayout gridLayout = new GridLayout(3, false);
shell.setLayout(gridLayout);
labelIconFile = novo rótulo(shell, SWT.NULL);
textIconFile = novo Texto(shell, SWT.SINGLE | SWT.BORDER);
GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
gridData.grabExcessHorizontalSpace = verdadeiro;
textIconFile.setLayoutData(gridData);
buttonIconBrowse = novo botão (shell, SWT.PUSH);
gridData = new GridData();
gridData.horizontalSpan = 3;
gridData.horizontalAlignment = GridData.CENTER;
buttonSetIcon = novo botão (shell, SWT.PUSH);
buttonSetIcon.setLayoutData(gridData);
shell.setText("Seletor de ícone");
labelIconFile.setText("Selecione um ícone:");
buttonIconBrowse.setText("Navegar");
buttonSetIcon.setText("Definir ícone");
buttonIconBrowse.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
Diálogo FileDialog = novo FileDialog(shell, SWT.OPEN);
Arquivo de string = dialog.open();
if (arquivo! = nulo) {
textIconFile.setText(arquivo);
}
}
});
buttonSetIcon.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
if(shellIcon! = nulo)
shellIcon.dispose();
tentar {
shellIcon = nova imagem(display, textIconFile.getText());
shell.setImage(shellIcon);
}catch(Exceção ex) {
ex.printStackTrace();
}
}
});
}
public static void main(String[] args) {
novo IconSelector();
}
}