web-dev-qa-db-fra.com

Java2D: Augmenter la largeur de la ligne

Je veux augmenter la largeur de Line2D. Je n'ai trouvé aucune méthode pour le faire. Dois-je créer un petit rectangle à cette fin?

71
Boolean

Vous devez utiliser setStroke pour définir un trait de l'objet Graphics2D.

L'exemple à http://www.Java2s.com vous donne quelques exemples de code.

Le code suivant produit l'image ci-dessous:

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);
    }
}

enter image description here

(Notez que la méthode setStroke n'est pas disponible dans l'objet Graphics. Vous devez la convertir en un objet Graphics2D.)


Cet article a été réécrit sous forme d'article ici .

150
aioobe

Qu'est-ce que Stroke:

La classe BasicStroke définit un ensemble d'attributs de rendu de base pour les contours des primitives graphiques, qui sont rendus avec un L'objet Graphics2D dont l'attribut Stroke est défini sur this BasicStroke.

https://docs.Oracle.com/javase/7/docs/api/Java/awt/BasicStroke.html

Notez que le paramètre Stroke:

Graphics2D g2 = (Graphics2D) g;
g2.setStroke(new BasicStroke(10));

définit la largeur de la ligne, puisque BasicStroke(float width):

Construit un BasicStroke solide avec la largeur de trait spécifiée et les valeurs par défaut des styles de limite et de jointure.

Et, cela affecte également d'autres méthodes telles que Graphics2D.drawLine(int x1, int y1, int x2, int y2) et Graphics2D.drawRect(int x, int y, int width, int height):

Les méthodes de l'interface Graphics2D qui utilisent le contour Shape retourné par un objet Stroke, include draw et toute autre méthode que sont implémentés en termes de cette méthode, tels que drawLine, drawRect, drawRoundRect, drawOval, drawArc, drawPolyline et drawPolygon.

0
ZhaoGang