使用方法paint java闪烁

时间:2014-04-17 22:37:30

标签: java swing graphics paint

我的问题是在框架中移动圆圈时产生的闪烁。 当我用键移动时,圆圈消失了。

我需要双缓冲,但我不知道如何使用它。帮助我的朋友,我需要你对这个项目的了解!

解决方案?

import javax.swing.JFrame; public class PruebaGraphics extends JFrame{ int x=130, y=130; public static void main(String[] args) { new PruebaGraphics(); } public PruebaGraphics() { this.setTitle("Dibujando sobre lienzo en java"); this.setSize(300,300); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); KeyListener pulsa = new KeyListener() { @Override public void keyTyped(KeyEvent ke) { throw new UnsupportedOperationException("Not supported yet."); @Override public void keyPressed(KeyEvent ke) { if(ke.getKeyCode()==39 && x+60<size().width) //derecha { x = x+10; } if(ke.getKeyCode()==40 && y+60<size().height) //abajo { y= y+10; } if(ke.getKeyCode()==38 && y-30>0) //Arriba { y = y-10; } if(ke.getKeyCode()==37 && x-10 > 0) //izquierda { x= x-10; } repaint(); } @Override public void keyReleased(KeyEvent ke) { } }; addKeyListener(pulsa); } @Override public void paint(Graphics g) { super.paint(g); g.fillOval(x, y, 50, 50); } }

1 个答案:

答案 0 :(得分:0)

您正在直接在JFame中绘图,如果您在本网站上阅读任何Swing图形答案,您会发现这是不应该做的事情。而是在JFrame显示的JPanel的paintComponent方法中绘制。这将为您的图形提供自动双缓冲,从而使动画更流畅。