void (String[] args) { JFrame frame = new JFrame("Portlet Test"); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.setLocation(300, 300); frame.setSize(200, 200); JPanel pane = new JPanel(new FlowLayout()); final JButton first = new JButton("North east"); first.addActionListener(new ActionListener() { @Override @SuppressWarnings({"HardCodedStringLiteral"}) public void actionPerformed(ActionEvent e) { Callout.showText(first, Callout.NORTH_EAST, "North east"); } }); pane.add(first); final JButton second = new JButton("North west"); second.addActionListener(new ActionListener() { @Override @SuppressWarnings({"HardCodedStringLiteral"}) public void actionPerformed(ActionEvent e) { Callout.showText(second, Callout.NORTH_WEST, "North west"); } }); pane.add(second); final JButton third = new JButton("South east"); third.addActionListener(new ActionListener() { @Override @SuppressWarnings({"HardCodedStringLiteral"}) public void actionPerformed(ActionEvent e) { Callout.showText(third, Callout.SOUTH_EAST, "South east"); } }); pane.add(third); final JButton fourth = new JButton("South west"); fourth.addActionListener(new ActionListener() { @Override @SuppressWarnings({"HardCodedStringLiteral"}) public void actionPerformed(ActionEvent e) { Callout.showText(fourth, Callout.SOUTH_WEST, "South west"); } }); pane.add(fourth); frame.getContentPane().setLayout(new GridBagLayout()); frame.getContentPane().add(pane); frame.setVisible(true); }