처음 포스터와 분명한 n00b 자바 학생. 나는이 일을 영원히 계속하고 있으며, 지난 이틀 동안 인터넷을 수색하고 아무 것도 시도하지 않는다. 이것은 원래 JFrame을 사용하는 프로그램이었고 애플릿으로 변환해야합니다. 코드는 오류없이 잘 컴파일되고 애플릿을 시작하지만 그게 전부입니다. 나는 회색 창을 띄우고 "Applet Started"라고 말합니다. 미소를 찌푸린 얼굴로 바꾸고 타이머로 다시 되돌아 오는 그래픽을 보여 주기로되어 있습니다. 나는 숙제를 끝내야 할 사람을 찾고 있지 않습니다. (당신이 믿지 않는 한) 저는 약간의 지침이 필요합니다.JApplet이 시작되지만 초기화되지 않습니다
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JApplet;
import javax.swing.JPanel;
import javax.swing.Timer;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Dimension;
public class GAPanel extends JApplet {
public void init() {
System.out.println("In init");
this.setSize(new Dimension(600, 600));
setLayout(new BorderLayout());
}
protected class GAPane extends JPanel implements ActionListener {
public final int FACE_FROWN = 1;
public final int FACE_SMILE = 2;
private int face = FACE_SMILE;
private Timer timer = null;
{
timer = new Timer(1000, this);
timer.start();
}
public void paintComponent(Graphics paint) {
super.paintComponents(paint);
System.out.println("In paint");
this.setBackground(java.awt.Color.blue);
Graphics2D betterpaint = (Graphics2D) paint;
betterpaint.drawOval(300, 300, 100, 100);
paint.setColor(Color.yellow);
betterpaint.fillOval(300, 300, 100, 100);
paint.setColor(Color.black);
betterpaint.drawOval(325, 325, 10, 10);
paint.setColor(Color.white);
betterpaint.fillOval(325, 325, 10, 10);
paint.setColor(Color.black);
betterpaint.drawOval(365, 325, 10, 10);
paint.setColor(Color.white);
betterpaint.fillOval(365, 325, 10, 10);
paint.setColor(Color.black);
betterpaint.fillOval(329, 329, 3, 3);
betterpaint.fillOval(368, 329, 3, 3);
paint.setColor(Color.black);
switch (face){
case FACE_FROWN:
betterpaint.drawArc(325, 350, 50, 45, 0, 180);
break;
case FACE_SMILE:
betterpaint.drawArc(325, 325, 50, 50, 200, 140);
break;
}
}
public void actionPerformed(ActionEvent ae) {
face = face == FACE_FROWN ? FACE_SMILE : FACE_FROWN;
this.repaint();
}
}
}
* "이것은 원래이었다 JFrame의를 사용하여 프로그램과 나는 애플릿으로 변환해야합니다."* 난에서 볼 코드는 'JApplet'을 의미하지만 ... 왜? 일반적으로 [Java Web Start] (http://stackoverflow.com/tags/java-web-start/info)를 사용하여 링크에서 프레임을 시작하는 것이 좋습니다. –
변경 public void paintComponent (그래픽 페인트) { super.paintComponents (페인트);'public void paintComponent (그래픽 페인트) { super.paintComponent (페인트);'(복수/단수 형태 사용) ! –