public MainPanel() { super(new BorderLayout()); BufferedImage bi = null; try { bi = ImageIO.read(getClass().getResource("test.jpg")); } catch (IOException ioe) { ioe.printStackTrace(); } bufferedImage = bi; List<AbstractAction> list = Arrays.asList( new AbstractAction("NONE") { @Override public void actionPerformed(ActionEvent e) { mode = Flip.NONE; repaint(); } }, new AbstractAction("VERTICAL") { @Override public void actionPerformed(ActionEvent e) { mode = Flip.VERTICAL; repaint(); } }, new AbstractAction("HORIZONTAL") { @Override public void actionPerformed(ActionEvent e) { mode = Flip.HORIZONTAL; repaint(); } }); Box box = Box.createHorizontalBox(); box.add(Box.createHorizontalGlue()); box.add(new JLabel("Flip: ")); for (AbstractAction a : list) { JRadioButton rb = new JRadioButton(a); if (bg.getButtonCount() == 0) { rb.setSelected(true); } box.add(rb); bg.add(rb); box.add(Box.createHorizontalStrut(5)); } add(p); add(box, BorderLayout.SOUTH); setOpaque(false); setPreferredSize(new Dimension(320, 240)); }