Quiero aumentar el ancho de Line2D. No pude encontrar ningún método para hacer eso. ¿Necesito hacer un pequeño rectángulo para este propósito?
Respuestas:
Debe utilizar setStroke
para establecer un trazo del Graphics2D
objeto.
El ejemplo en http://www.java2s.com le ofrece algunos ejemplos de código.
El siguiente código produce la siguiente imagen:
import java.awt.*;
import java.awt.geom.Line2D;
import javax.swing.*;
public class FrameTest {
public static void main(String[] args) {
JFrame jf = new JFrame("Demo");
Container cp = jf.getContentPane();
cp.add(new JComponent() {
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.setStroke(new BasicStroke(10));
g2.draw(new Line2D.Float(30, 20, 80, 90));
}
});
jf.setSize(300, 200);
jf.setVisible(true);
}
}
(Tenga en cuenta que el setStroke
método no está disponible en el Graphics
objeto. Debe convertirlo en un Graphics2D
objeto).
Esta publicación ha sido reescrita como un artículo aquí .
Que es Stroke
:
La clase BasicStroke define un conjunto básico de atributos de representación para los contornos de las primitivas de gráficos, que se representan con un objeto Graphics2D que tiene su atributo Stroke establecido en este BasicStroke.
https://docs.oracle.com/javase/7/docs/api/java/awt/BasicStroke.html
Tenga en cuenta que la Stroke
configuración:
Graphics2D g2 = (Graphics2D) g;
g2.setStroke(new BasicStroke(10));
está configurando el ancho de línea, ya que BasicStroke(float width)
:
Construye un BasicStroke sólido con el ancho de línea especificado y con valores predeterminados para los estilos de límite y unión.
Y también afecta a otros métodos como Graphics2D.drawLine(int x1, int y1, int x2, int y2)
y Graphics2D.drawRect(int x, int y, int width, int height)
:
Los métodos de la interfaz Graphics2D que usan el contorno Shape devuelto por un objeto Stroke incluyen draw y cualquier otro método que se implemente en términos de ese método, como drawLine, drawRect, drawRoundRect, drawOval, drawArc, drawPolyline y drawPolygon.
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON)