Есть ли способ рисовать линии с точностью до субпикселя в Swing?

Этот вопрос был задан ранее, но ответы неЯ решил эту проблему еще раз.

Было предложено, чтобы вместо использованияg2.drawLine, вы могли бы использоватьg2.draw(line), гдеline этоLine2D.Double, Однако, как вы можете видеть на скриншоте, линии по-прежнему нарисованы так, как если бы они заканчивались целым пикселем (каждый набор из 10 линий точно параллелен).

import javax.swing.*;
import java.awt.*;
import java.awt.geom.Line2D;

public class FrameTestBase extends JFrame {

    public static void main(String args[]) {
        FrameTestBase t = new FrameTestBase();
        t.add(new JComponent() {
            public void paintComponent(Graphics g) {
                Graphics2D g2 = (Graphics2D) g;
                g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                        RenderingHints.VALUE_ANTIALIAS_ON);
                for (int i = 0; i < 50; i++) {
                    double delta = i / 10.0;
                    double y = 5 + 5*i;
                    Shape l = new Line2D.Double(5, y, 200, y + delta);
                    g2.draw(l);
    // Base case, with ints, looks exactly the same:
    //              g2.drawLine(5, (int)y, 200, (int)(y + delta));
                }
            }
        });

        t.setDefaultCloseOperation(EXIT_ON_CLOSE);
        t.setSize(220, 300);
        t.setVisible(true);
    }
}

Так что в Swing невозможно правильно отображать строки, которые незаканчивается точно на пикселе?

Ответы на вопрос(1)

Ваш ответ на вопрос