Мне нужно сделать анимированное движение с моей рамкой и внутренними панелями.Как сделать эту java-анимацию гладкой?
Когда пользователь нажимает на определенную внутреннюю панель (панель внутри рамки), в рамку contentPane
добавляется другая панель, а затем и рамка, и новая панель растут по ширине, но я всегда хочу, чтобы мой кадр находился посредине экран. Я решил эту анимацию таким образом:
Container container=getContentPane();
int i=0;
ActionListener run = new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
frame.setSize(new Dimension(frame.getSize().width + 20, 550));
frame.setLocationRelativeTo(null);
//newp is the panel which is just added
newp.setPreferredSize(new Dimension(newp.getSize().width + 20, 550));
revalidate();
repaint();
container.revalidate();
container.repaint();
if (i > 20)
{
previousPanel = newp;
i = 0;
setInnerPanel(); // add another panel to added panel
container.revalidate();
container.repaint();
timer.stop();
}
i++;
}
};
timer = new Timer(15, run);
timer.setRepeats(true);
timer.start();
Теперь есть важная проблема. анимация НЕгладкая. я изменил задержку таймера на 20 и более, но хорошая гладкая анимация не вышла ... как это решить?
, что пользовательский интерфейс инструментарий вы используете? –
@ DanielA.White Swing – Soheil
'Я изменил задержку таймера на 20 и более' ---- *** Увеличение *** Задержка таймера фактически *** уменьшает *** FPS. ** 'FPS = 1000/delay' ** –