在 Java 中绘制矩形显示像素异常

2022-09-04 23:25:56

我有一个非常简单的java程序,可以绘制一个矩形,但是当我仔细检查渲染的形状时,我看到两个不应该存在的额外像素......

enter image description here您可以在左下方看到一个额外的像素,在右侧下方看到一个额外的像素。

我正在使用Windows 7 Professional 64-BIT,使用JDK 1.8.0。这是程序...

    import java.awt.Graphics;
    import java.io.IOException;
    import javax.swing.JFrame;
    import javax.swing.JPanel;

    public class JavaBug {

    public JavaBug() throws IOException {
        JFrame frame = new JFrame();        
        frame.add( new JPanel() {
        private static final long serialVersionUID = 1L;

                public void paintComponent( Graphics g ) {
                    super.paintComponent(g);
                    g.drawRect(50, 50, 20, 20); 
                }
            });

            frame.setSize(400, 300);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setVisible( true );
        }

        public static void main(String [] args) throws IOException {
            new JavaBug();
        }
    }

答案 1

为了一个答案,以防有人遇到这个问题

问题似乎出在Java 8预发布版本上。此代码适用于 Java 7。

注意:这个结论取自评论部分,我没有为答案做出贡献。:-)


答案 2

证实。我已经测试过了。这是一个 Java 8 错误。


推荐