javax.swing. Замедление времени в Java7u40

Вызовите javax.swing.Timer # start () в то же время,

7u25 это не проблема.

но 7u40 это большая проблема.

Слишком медленный вызов ActionListener # actionPerformed. (в основном в то же время вызвать U25)

Совершенно разные движения между u25 и u40. (Я использую Windows 8) Я сообщаю об ошибке, но все еще не добавляю систему отслеживания ошибок. Oracle сокрушает свинг-приложения?

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public class TimerProblem extends JComponent {

        int red = 0;

        TimerProblem(final long startMs) {
                setPreferredSize(new Dimension(10, 10));

                Timer t = new Timer(16, new ActionListener() {

                        @Override
                        public void actionPerformed(ActionEvent e) {
                                red = (int)(System.currentTimeMillis() - startMs) % 255;
                                repaint();
                        }

                });
                t.setInitialDelay(1000);
                t.start();
        }

        @Override
        protected void paintComponent(Graphics g) {
                g.setColor(new Color(red, 255 - red, 0));
                g.fillRect(0, 0, getWidth(), getHeight());
        }

        public static void main(String[] args) {
                JFrame f = new JFrame();
                Container c = f.getContentPane();

                c.setLayout(new GridLayout(10, 10));
                long startMs = System.currentTimeMillis();
                for (int i = 0; i < 100; i++) {
                        c.add(new TimerProblem(startMs));
                }
                f.pack();
                f.setVisible(true);
        }

}

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

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