Knute Johnson <nos...@rabbitbrush.frazmtn.com> wrote:
It works fine for me. Show us a complete, compilable example that
demonstrates your problem.
You will note that the drawn polygon and the filled polygon are not
the same size:
import javax.swing.*;
import java.awt.*;
public class Foo extends JFrame {
private final Polygon polygon = new Polygon(
new int[]{2,8,5},
new int[]{5,5,2},
3
);
private Foo() {
super("Test");
setLayout(new GridLayout(2,1));
final JLabel A = new JLabel("A");
getContentPane().add(A);
A.setIcon(new Icon() {
public void paintIcon(Component c, Graphics g, int x, int y) {
g.drawPolygon(polygon);
}
public int getIconWidth() {
return 11;
}
public int getIconHeight() {
return 11;
}
});
final JLabel B = new JLabel("B");
getContentPane().add(B);
B.setIcon(new Icon() {
public void paintIcon(Component c, Graphics g, int x, int y) {
g.fillPolygon(polygon);
}
public int getIconWidth() {
return 11;
}
public int getIconHeight() {
return 11;
}
});
}
public static void main(String[] args) throws Exception {
final Foo foo = new Foo();
foo.pack();
foo.setVisible(true);
}}
--
C. Benson Manica | I *should* know what I'm talking about - if I
cbmanica(at)gmail.com | don't, I need to know. Flames welcome.
The first draws the outline, the second fills the inside.
everything between the edges.
effect you want.