Вы можете смоделировать кнопку с помощью CLabel. Добавьте слушатель мыши, чтобы изменить фон при наведении курсора мыши и вверх, а при событии мыши вверх отправьте событие прослушивателя выбора, чтобы оно действовало так же, как кнопка. Например:
Color bg = ...
Color shadow = ...
CLabel simulatedButton = new CLabel(parent, SWT.PUSH);
simulatedButton.setBackground(bg);
simulatedButton.addMouseListener(new MouseAdapter() {
@Override
public void mouseUp(MouseEvent e) {
simulatedButton.setBackground(bg);
notifyListeners(SWT.Selection, new Event());
}
@Override
public void mouseDown(MouseEvent e) {
simulatedButton.setBackground(shadow);
}
});
Это кратковременно изменяет фон кнопки, пока вы нажимаете мышь, чтобы дать эффект нажатия кнопки. CLabel также может быть расширен, в отличие от других виджетов SWT, поэтому вы можете создать подкласс, если вам нужно делать это часто.