import javax.swing.*;
import java.lang.reflect.InvocationTargetException;

public class TestImageIconWithJRadioButtonMenuItem {
    public static void main(String[] args) throws InterruptedException, InvocationTargetException {
        SwingUtilities.invokeAndWait(() -> createTestUI());
    }

    public static void createTestUI() {
        String imgPath1 = "./duke.gif";

        JFrame frame = new JFrame();
        ImageIcon imageIcon1 = new ImageIcon(imgPath1);
        AbstractButton button1 = new JRadioButtonMenuItem("JRadioButtonMenuItem 1",
                imageIcon1);
        AbstractButton button2 = new JRadioButtonMenuItem(
                "JRadioButtonMenuItem 2", imageIcon1);
        AbstractButton button3 = new JRadioButtonMenuItem(
                "JRadioButtonMenuItem 3", imageIcon1);

        button1.getAccessibleContext().setAccessibleName("button1");
        button2.getAccessibleContext().setAccessibleName("button2");
        button3.getAccessibleContext().setAccessibleName("button3");

        ButtonGroup buttonGroup = new ButtonGroup();
        buttonGroup.add(button1);
        buttonGroup.add(button2);
        buttonGroup.add(button3);
        JLabel label = new JLabel("My Label", imageIcon1, JLabel.LEFT);

        JPanel panel = new JPanel();
        panel.add(button1);
        panel.add(button2);
        panel.add(button3);
        panel.add(label);

        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.getContentPane().add(panel);
        frame.setSize(300, 300);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);

    }
} 
