Ich möchte die Line2D-Breite erhöhen. Ich konnte keine Methode finden, um das zu tun. Muss ich zu diesem Zweck tatsächlich ein kleines Rechteck erstellen?
Ich möchte die Line2D-Breite erhöhen. Ich konnte keine Methode finden, um das zu tun. Muss ich zu diesem Zweck tatsächlich ein kleines Rechteck erstellen?
Antworten:
Sie sollten verwenden setStroke
, um einen Strich des Graphics2D
Objekts festzulegen.
Das Beispiel unter http://www.java2s.com enthält einige Codebeispiele.
Der folgende Code erzeugt das folgende Bild:
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);
}
}
(Beachten Sie, dass die setStroke
Methode im Graphics
Objekt nicht verfügbar ist . Sie müssen sie in ein Graphics2D
Objekt umwandeln.)
Dieser Beitrag wurde bereits als ein Artikel neu geschrieben hier .
Was ist Stroke
:
Die BasicStroke-Klasse definiert einen grundlegenden Satz von Rendering-Attributen für die Umrisse von Grafikprimitiven, die mit einem Graphics2D-Objekt gerendert werden, dessen Stroke-Attribut auf diesen BasicStroke festgelegt ist.
https://docs.oracle.com/javase/7/docs/api/java/awt/BasicStroke.html
Beachten Sie, dass die Stroke
Einstellung:
Graphics2D g2 = (Graphics2D) g;
g2.setStroke(new BasicStroke(10));
stellt die Linienbreite ein, da BasicStroke(float width)
:
Erstellt einen festen BasicStroke mit der angegebenen Linienbreite und mit Standardwerten für die Cap- und Join-Stile.
Und es beeinflusst auch andere Methoden wie Graphics2D.drawLine(int x1, int y1, int x2, int y2)
und Graphics2D.drawRect(int x, int y, int width, int height)
:
Zu den Methoden der Graphics2D-Schnittstelle, die die von einem Strichobjekt zurückgegebene Gliederungsform verwenden, gehören draw und alle anderen Methoden, die im Hinblick auf diese Methode implementiert werden, z. B. drawLine, drawRect, drawRoundRect, drawOval, drawArc, drawPolyline und drawPolygon.
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON)