Line2D genişliğini artırmak istiyorum. Bunu yapmak için herhangi bir yöntem bulamadım. Bu amaç için gerçekten küçük bir dikdörtgen yapmam gerekiyor mu?
Yanıtlar:
Nesnenin setStroke
vuruşunu ayarlamak için kullanmalısınız Graphics2D
.
Http://www.java2s.com adresindeki örnek size bazı kod örnekleri verir.
Aşağıdaki kod, aşağıdaki görüntüyü oluşturur:
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);
}
}
( setStroke
Yöntemin Graphics
nesnede bulunmadığını unutmayın . Bir Graphics2D
nesneye dönüştürmeniz gerekir.)
Bu gönderi burada bir makale olarak yeniden yazılmıştır .
Nedir Stroke
:
BasicStroke sınıfı, Stroke özniteliği bu BasicStroke'a ayarlanmış bir Graphics2D nesnesiyle işlenen grafik ilkellerinin ana hatları için temel bir oluşturma öznitelikleri kümesini tanımlar.
https://docs.oracle.com/javase/7/docs/api/java/awt/BasicStroke.html
Not Stroke
ayarı:
Graphics2D g2 = (Graphics2D) g;
g2.setStroke(new BasicStroke(10));
çizgi genişliğini ayarlıyor, çünkü BasicStroke(float width)
:
Belirtilen çizgi genişliğine ve uç ve birleştirme stilleri için varsayılan değerlere sahip katı bir BasicStroke oluşturur.
Ayrıca Graphics2D.drawLine(int x1, int y1, int x2, int y2)
ve gibi diğer yöntemleri de etkiler Graphics2D.drawRect(int x, int y, int width, int height)
:
Bir Stroke nesnesi tarafından döndürülen anahat Shape'i kullanan Graphics2D arabiriminin yöntemleri, drawLine, drawRect, drawRoundRect, drawOval, drawArc, drawPolyline ve drawPolygon gibi bu yöntemle uygulanan diğer yöntemleri içerir.
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON)