2
나는 코드가 있습니다 왜 내 페인트가 작동하지 않습니까?
import java.applet.Applet;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class obj_Dingus
extends Applet
implements KeyListener{
private Rectangle rect; //The rectangle that we move
public void init()
{
this.addKeyListener(this);
rect = new Rectangle(0, 0, 50, 50);
}
public void paint(Graphics g)
{
setSize(500,500);
Graphics2D g2 = (Graphics2D)g;
g2.fill(rect);
}
@Override
public void keyPressed(KeyEvent e) {
repaint();
if (e.getKeyCode() == KeyEvent.VK_RIGHT){
rect.setLocation(rect.x + 2, rect.y);
} if (e.getKeyCode() == KeyEvent.VK_LEFT){
rect.setLocation(rect.x - 2, rect.y);
} if (e.getKeyCode() == KeyEvent.VK_UP){
rect.setLocation(rect.x, rect.y - 2);
} if (e.getKeyCode() == KeyEvent.VK_DOWN){
rect.setLocation(rect.x, rect.y + 2);
}
repaint();
}
@Override
public void keyReleased(KeyEvent e) {
}
@Override
public void keyTyped(KeyEvent e) {
}
}
는 지금까지 내가 말할 수있는, 그것은 화면을 이동 블랙 박스를 확인해야합니다,하지만 대신에 화면이 업데이트되지 않으며, 기존의 박스는 삭제되지 않습니다. 그것은 화면의 거대한 검은 색 선으로 끝나고, 내가 뭘 잘못하고 있는지 전혀 알지 못한다. 나는 총 초보자이다.
1) 당사 코드 애플릿 :
이의 라인을 따라 더해야 하는가? 사양으로 인해 예정된 경우. 선생님이 [왜 CS 교사가 Java 애플릿 교육을 중단해야하는지] (http://programmers.blogoverflow.com/2013/05/why-cs-teachers-should-stop-teaching-java-applets/)를 참조하십시오. 2) Swing이 아닌 AWT를 사용해야하는 이유 AWT 구성 요소를 사용하여 포기해야하는 여러 가지 이유 때문에 [AWT를 통한 스윙 엑스트라] (http://stackoverflow.com/a/6255978/418556)에서이 대답을 참조하십시오. 이전 AWT 기반 API를 지원해야하는 경우 [중량 및 중량 구성 요소 혼합] (http://www.oracle.com/technetwork/articles/java/mixing-components-433992.html)을 참조하십시오. –
페인트에서 g2.clearRect(); 할 수 있습니까? – eliteslayer