Java 使JFrame不重新绘制
我试着不用Java重新绘制我的窗口。我有:Java 使JFrame不重新绘制,java,swing,jframe,repaint,Java,Swing,Jframe,Repaint,我试着不用Java重新绘制我的窗口。我有: public void paint(Graphics g) { super.paint(g); Graphics2D g2d = (Graphics2D) g; g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); ball.paint(g2d); }
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
ball.paint(g2d);
}
总的来说:
while (true) {
game.move();
game.repaint();
Thread.sleep(10);
}
我的JFrame是window,我尝试了window.setIgnoreRepaint(true)代码>但没有变化。你能帮我一下吗?谢谢:)super.paint(g)
重新绘制窗口-您需要删除此行
public void paint(Graphics g) {
// super.paint(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
ball.paint(g2d);
}
必须替换为
Timer t=new Timer(10,new ActionListener() {
public void actionPerformed(ActionEvent e) {
game.move();
game.repaint();
}
});
t.start();
和重写内容窗格的paintComponent()。您应该尝试重写paintComponent(),而不是paint(图形g):)否:a)不要重写框架的paint,而要重写其内容窗格的paintComponent b)super.paint必须始终调用,除非您需要非常奇怪的效果;-)
Timer t=new Timer(10,new ActionListener() {
public void actionPerformed(ActionEvent e) {
game.move();
game.repaint();
}
});
t.start();