Java Language
Gráficos 2D en Java
Buscar..
Introducción
Los gráficos son imágenes visuales o diseños en alguna superficie, como una pared, lienzo, pantalla, papel o piedra para informar, ilustrar o entretener. Incluye: representación gráfica de datos, como en el diseño y fabricación asistidos por computadora, en la composición tipográfica y las artes gráficas, y en software educativo y recreativo. Las imágenes que son generadas por una computadora se llaman gráficos de computadora.
La API Java 2D es potente y compleja. Hay varias formas de hacer gráficos 2D en Java.
Ejemplo 1: dibujar y rellenar un rectángulo utilizando Java
Este es un ejemplo que imprime un rectángulo y color de relleno en el rectángulo. https://i.stack.imgur.com/dlC5v.jpg
La mayoría de los métodos de la clase Gráficos se pueden dividir en dos grupos básicos:
- Dibuje y complete métodos, que le permiten representar formas básicas, texto e imágenes.
- Métodos de configuración de atributos, que afectan la forma en que aparecen los dibujos y rellenos.
Ejemplo de código: Comencemos con un pequeño ejemplo de dibujo de un rectángulo y color de relleno. Allí declaramos dos clases, una clase es MyPanel y otra clase es prueba. En la clase MyPanel usamos mathods drawRect () & fillRect () para dibujar un rectángulo y colorear en él. Establecemos el color mediante el método setColor (Color.blue). En Segunda clase, probamos nuestro gráfico, que es la clase de prueba, creamos un cuadro y colocamos MyPanel con p = nuevo objeto MyPanel (). Al ejecutar la clase de prueba, vemos un rectángulo y un rectángulo de color azul.
Primera clase: MyPanel
import javax.swing.*;
import java.awt.*;
// MyPanel extends JPanel, which will eventually be placed in a JFrame
public class MyPanel extends JPanel {
// custom painting is performed by the paintComponent method
@Override
public void paintComponent(Graphics g){
// clear the previous painting
super.paintComponent(g);
// cast Graphics to Graphics2D
Graphics2D g2 = (Graphics2D) g;
g2.setColor(Color.red); // sets Graphics2D color
// draw the rectangle
g2.drawRect(0,0,100,100); // drawRect(x-position, y-position, width, height)
g2.setColor(Color.blue);
g2.fillRect(200,0,100,100); // fill new rectangle with color blue
}
}
Segunda clase: prueba
import javax.swing.;
import java.awt.;
public class Test { //the Class by which we display our rectangle
JFrame f;
MyPanel p;
public Test(){
f = new JFrame();
// get the content area of Panel.
Container c = f.getContentPane();
// set the LayoutManager
c.setLayout(new BorderLayout());
p = new MyPanel();
// add MyPanel object into container
c.add(p);
// set the size of the JFrame
f.setSize(400,400);
// make the JFrame visible
f.setVisible(true);
// sets close behavior; EXIT_ON_CLOSE invokes System.exit(0) on closing the JFrame
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String args[ ]){
Test t = new Test();
}
}
Para obtener más información sobre el diseño de los bordes: https://docs.oracle.com/javase/tutorial/uiswing/layout/border.html
paintComponent ()
- Es un método principal para pintar.
- Por defecto, primero pinta el fondo.
- Después de eso, realiza pintura personalizada (dibujo de círculo, rectángulos, etc.)
Graphic2D se refiere a la clase Graphic2D
Nota: la API Java 2D le permite realizar fácilmente las siguientes tareas:
- Dibuja líneas, rectángulos y cualquier otra forma geométrica.
- Rellena esas formas con colores sólidos o degradados y texturas.
- Dibuje texto con opciones para un control preciso sobre la fuente y el proceso de renderizado.
- Dibujar imágenes, opcionalmente aplicando operaciones de filtrado.
- Aplique operaciones como la composición y la transformación durante cualquiera de las operaciones de representación anteriores.
Ejemplo 2: Dibujo y relleno oval
import javax.swing.*;
import java.awt.*;
public class MyPanel extends JPanel {
@Override
public void paintComponent(Graphics g){
// clear the previous painting
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
g2.setColor(Color.blue);
g2.drawOval(0, 0, 20,20);
g2.fillOval(50,50,20,20);
}
}
g2.drawOval (int x, int y, int height, int ancho);
Este método dibujará un óvalo en las posiciones x e y especificadas con la altura y el ancho dados.
g2.fillOval (int x, int y, int height, int ancho); Este método llenará un óvalo en las posiciones x e y especificadas con la altura y el ancho dados.