para ello cree una clase llamada panel2d y en esta clase ponemos el siguiente codigo:
import javax.swing.JComponent;
import javax.swing.JFrame;
import java.awt.*;
import java.awt.geom.*;
//@SuppressWarnings("serial")
// By extending JFrame we have our applet
public class panel2d extends JFrame {
public static void main(String[] args) {
new panel2d();
}
public panel2d() {
this.setSize(500, 500);
this.setTitle("DIBUJANDO 2 D JAVAYOTROS.BLOGSPOT.COM");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.add(new DrawStuff(), BorderLayout.CENTER);
this.setVisible(true);
}
// Creating my own component by extending JComponent
// JComponent is the base class for all swing components. Even custom ones
private class DrawStuff extends JComponent {
// Graphics is the base class that allows for drawing on components
public void paint(Graphics g) {
// Extends graphics so you can draw dimensional shapes and images
Graphics2D graph2 = (Graphics2D) g;
// Establece preferencias para la prestación
// KEY_ANTIALIASING reduce artefactos en formas
// VALUE_ANTIALIAS_ON va a limpiar los bordes
graph2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
// La interfaz Shape sabe cómo dibujar muchas formas diferentes
/*
* Arc2D, Arc2D.Double, Arc2D.Float, Zona, BasicTextUI.BasicCaret,
* CubicCurve2D, CubicCurve2D.Double, CubicCurve2D.Float,
* DefaultCaret, Ellipse2D, Ellipse2D.Double, Ellipse2D.Float,
* GeneralPath, Line2D, Line2D.Double, Line2D.Float, Path2D,
* Path2D.Double, Path2D.Float, PolÃgono, QuadCurve2D,
* QuadCurve2D.Double, QuadCurve2D.Float, Rectángulo, Rectangle2D,
* Rectangle2D.Double, Rectangle2D.Float, RectangularShape,
* RoundRectangle2D, RoundRectangle2D.Double, RoundRectangle2D.Float
*/
Shape drawLine = new Line2D.Float(20, 90, 55, 250);
// Start x, inicia y, anchura, altura, comenzar grados de ángulo, extensión angular, OPEN, ACORDE, PIE
// Medida angular se refiere a cuántos grados continúa el arco desde el ángulo de inicio
Shape drawArc2D = new Arc2D.Double(5, 150, 100, 100, 45, 180, Arc2D.OPEN);
Shape drawArc2D2 = new Arc2D.Double(5, 200, 100, 100, 45, 45, Arc2D.CHORD);
Shape drawArc2D3 = new Arc2D.Double(5, 250, 100, 100, 45, 45, Arc2D.PIE);
// Dibujar elipse en un rectángulo definido x1, y1, x2, y2
Shape drawEllipse = new Ellipse2D.Float(10, 10, 100, 100);
// Redondear el rectángulo se define la altura del arco luego de arco de ancho
Shape drawRoundRec = new RoundRectangle2D.Double(25, 25, 50, 50, 45, 45);
// Dibuja una curva con 4 puntos
CubicCurve2D cubicCurve = new CubicCurve2D.Double();
// También puede establecer la curva exterior de la definición
// X1, y1, ctrlx1, ctrly1, ctrlx2, ctrly2, x2, y2
cubicCurve.setCurve(110, 50, 300,
200, 200, 200, 90, 263);
// Dibujar rectángulo definiendo x superior izquierda, y, a continuación, anchura altura
Shape drawRect = new Rectangle2D.Float(300, 300, 150, 100);
// // Dibuja una curva con 3 puntos
// X1, y1, ctrlx1, ctrly1, x2, y2
Shape drawQuadCurve = new QuadCurve2D.Float(300, 100, 400, 200, 150, 300);
Shape drawTransRect = new Rectangle2D.Double(300, 300, 75, 50);
// Objeto Pintura define el color que se utiliza para la representación
graph2.setPaint(Color.BLACK);
// Llama una forma basada en las preferencias que han sido sget
graph2.draw(drawLine);
graph2.draw(drawArc2D);
graph2.draw(drawArc2D2);
graph2.draw(drawArc2D3);
graph2.draw(drawEllipse);
// Establecer el color de relleno
graph2.setColor(Color.GREEN);
// Dibujar una forma con un relleno
graph2.fill(drawRoundRec);
graph2.fill(drawRect);
graph2.setPaint(Color.BLACK);
graph2.draw(cubicCurve);
graph2.draw(drawRect);
graph2.draw(drawQuadCurve);
// Esto hace que todo sea dibujado después de ser 60% transparente
graph2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.40F));
// Esto elimina la transparencia
graph2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 1.0F));
// Iniciar punto x, punto de partida y, iniciar color, extremo x, y final, el color final
// Puede usar códigos de colores hexagonales 0x66ffff equivale color.CYAN
// VERTICAL PENDIENTE
GradientPaint theGradient = new GradientPaint(0, 0, Color.BLUE, 0, 60, new Color(0x66ffff));
// Gradiente horizontal
// GradientPaint theGradient = new GradientPaint (0,0, Color.BLUE, 75,0, nuevo color (0x66ffff));
// Para hacer la última salida de color en el centro
// GradientPaint theGradient = new GradientPaint (0,0, Color.BLUE, 0,60, nuevo color (0x66ffff), true);
graph2.setPaint(theGradient);
graph2.fill(new Rectangle2D.Float(10, 10, 150, 100));
graph2.fill(drawTransRect);
}
}
}
bueno eso es todo solo lo ejecutamos y vemos la aplicacion :)
0 Comments