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);
}
});
}
}