Hello

I try to draw a diagonal cross and I get a different result with the same code 
under Microsoft Windows with Oracle Java 1.7 update 60 (expected result) and 
under Mageia Linux 4 with OpenJDK 1.7 update 60 (wrong result).

Please find enclosed my small test (50 lines of code) and an image showing the 
extra pixels on the diagonal cross.

I tried to disable the Java2D pipeline based on XRender and the anti-aliasing 
(by using the rendering hint) but it didn't help.

Let me know whether I should fill a bug report.

Best regards.
import java.awt.BasicStroke;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.SwingUtilities;


public class Test {

	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			
			@Override
			public void run() {
				Frame frame=new Frame();
				frame.add(new Canvas(){
					private static final long serialVersionUID = 1L;

					@Override
					public void paint(Graphics g){
						final Graphics2D g2=(Graphics2D)g.create();
			            g2.setStroke(new BasicStroke(1.0f,BasicStroke.CAP_BUTT,BasicStroke.JOIN_MITER));
			            g2.setColor(Color.BLACK);
			            final int delta=3;
			            final int width=20;
			            final int height=20;
			            g2.drawLine(delta,delta,width-delta-1,height-delta-1);
			            g2.drawLine(width-delta-1,delta,delta,height-delta-1);
			            g2.dispose();
					}
				});
				frame.setSize(600,600);
				frame.addWindowListener(new WindowAdapter() {
					@Override
					public void windowClosing(WindowEvent we) {
						System.exit(0);
					}
				});
				frame.setVisible(true);
			}
		});
	}
}

Reply via email to