Implementing Your Own Icons
Here’s a class that implements the Icon interface and uses ovals as simple icons:
import javax.swing.*; import java.awt.*; class OvalIcon implements Icon { private int width, height; public OvalIcon(int w, int h) { width = w; height = h; } public void paintIcon(Component c, Graphics g, int x, int y) { g.drawOval(x, y, width - 1, height - 1); } public int getIconWidth() { return width; } public int getIconHeight() { return height; } } public class TestOval { public static void main(String[] args) { JFrame f = new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JLabel label1 = new JLabel(new OvalIcon(20, 50)); JLabel label2 = new JLabel(new OvalIcon(50, 20)); JLabel label3 = new JLabel("Round!", new OvalIcon(60, 60), SwingConstants.CENTER); label3.setHorizontalTextPosition(SwingConstants.CENTER); Container c = f.getContentPane(); c.setLayout(new FlowLayout()); c.add(label1); c.add(label2); c.add(label3); f.pack(); f.setVisible(true); } }