November 2002
Intermediate to advanced
1280 pages
38h 26m
English
Here’s a class that implements the Icon interface and uses ovals as simple
icons:
// OvalIcon.java
//
import javax.swing.*;
import java.awt.*;
// A simple icon implementation that draws ovals
public 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; }
}A simple class that creates a few labels shows how it works:
// TestOval.java
//
import javax.swing.*;
import java.awt.*;
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);
}
}Running this test program produces the display shown in Figure 4-7.

Figure 4-7. OvalIcon labels
Read now
Unlock full access