Java Swing Graphics2d rotation jumping

Stranger in the Q :

I'm writing a simple game for studying purposes. Everything goes fine except one little thing...

I cant figure out how to rotate square without this ugly jumping

enter image description here

here a simplified version of my program illustrating an issue, here i use one timer, but in original program i have 2 timers one for handle game state and second for repaint:

public class soQuestion extends JLabel {

    double r;

    @Override
    public void paintComponent(Graphics g1) {
        Graphics2D g = (Graphics2D) g1;
        g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
                RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
        g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
                RenderingHints.VALUE_INTERPOLATION_BICUBIC);
        g.setRenderingHint(RenderingHints.KEY_RENDERING,
                RenderingHints.VALUE_RENDER_QUALITY);
        g.clearRect(0,0, getWidth(), getHeight());
        g.translate(getWidth()/2, getHeight()/2);
        g.rotate(r);
        g.translate(-20, -20);
        g.fillRect(0, 0, 40, 40);
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame();
        soQuestion question = new soQuestion();
        frame.add(question);
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.setSize(200, 200);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
        new javax.swing.Timer(10, new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {
                r += 0.005;
                question.repaint();
            }
        }).start();
    }
}

jumping is more visible if rotation delta values is small, for fast rotated objects is less visible..

all rendering hints i used has no effect

PS: Sorry for my english

PPS: i can provide more details if needed, how it looks in full version:

enter image description here

Stranger in the Q :

Thanks for all participants!

It is fully my mistake and inattention. I was copied this code section from some source :

g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);

And before ask a question here i couldn't saw that i used hint related to text rendering.

Special thanks to mr @Pshemo for suggesting of using this rendering hint:

g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

I was know about it before asking, but i'm a human and could not figure out where a mistake for an a hour and asked.

PS: sorry for my english

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=150201&siteId=1