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?
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);
}
}
(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 .
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.