Adding mouse listener to java swt image

eclipse, image, java, listener, swt

Solution

You can create a `Label`, set you image onto it via

label.setImage(deleteImage)

Afterwards you can do the following:

label.addMouseListener(new MouseListener() {

        @Override
        public void mouseUp(MouseEvent arg0) {
            System.out.println("Click");
        }

        @Override
        public void mouseDown(MouseEvent arg0) {

        }

        @Override
        public void mouseDoubleClick(MouseEvent arg0) {
        }
    });

Problem

Okay so i have image created like this: ``` Image deleteImage = new Image(viewer.getTable().getDisplay(), Provider.PATH_TO_DELETE_ICON); ``` How do i add mouse listener so i know when the image is clicked? Here is my label provider class: ``` private class MyLabelProvider extends LabelProvider implements ITableLabelProvider { @Override public Image getColumnImage(Object element, int columnIndex) { if (columnIndex == 3) { Image deleteImage = new Image(viewer.getTable().getDisplay(), Provider.PATH_TO_DELETE_ICON); return deleteImage; } if (columnIndex == 4) { Image editImage = new Image(viewer.getTable().getDisplay(), Provider.PATH_TO_EDIT_ICON); return editImage; } else return null; } public String getColumnText(Object element, int index) { Provider provider = (Provider) element; switch (index) { case 0: return Integer.toString(provider.getId()); case 1: return provider.getName(); case 2: return provider.getBulstat(); default: return ""; } } } ```

Original source