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?
81
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 .
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON)
Was ist
Stroke
: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)
:Und es beeinflusst auch andere Methoden wie
Graphics2D.drawLine(int x1, int y1, int x2, int y2)
undGraphics2D.drawRect(int x, int y, int width, int height)
:quelle