import javax.swing.*; import java.awt.*; import java.awt.geom.*; public class NgonView1 extends JPanel { private int nSides = 0; private Font ngonFont; static public final Dimension PREF_SIZE = new Dimension( 600, 700 ); static public final int warnX = 180; static public final int warnY = 600; static public final int areaX = 180; static public final int areaY = 600; public NgonView1() { ngonFont = new Font( "SansSerif", Font.ITALIC, 16 ); } public void setSides ( int n ) { nSides = n; repaint(); } public Dimension getPreferredSize() { return PREF_SIZE; } public void paintComponent( Graphics g ) { Graphics2D g2 = (Graphics2D) g; super.paintComponent( g ); g2.setFont( ngonFont ); g2.setPaint( Color.red ); if ( nSides < 3 ) { g2.drawString( "Elija un número de lados >= 3", warnX, warnY ); } else { g2.drawString( "Área del polígono = " + getArea(), areaX, areaY ); } g2.setStroke( new BasicStroke( 2 ) ); g2.setPaint( Color.blue ); Shape circle = new Ellipse2D.Float( 100, 100, 400, 400 ); g2.draw( circle ); } private double getArea() { double PIn = Math.PI / nSides; return nSides * Math.cos( PIn ) * Math.sin( PIn ); } }