만 (당신이 JApplet
를 사용하는 경우 JComponent
파생 된 인스턴스를 추가하는 것은 바람직하지만)는 JApplet
에 Component
파생 클래스의 intances를 추가 할 수 있기 때문이다. 데이터 유형 (add
메소드의 예상 유형 및 매개 변수로 전달하는 변수 유형)이 일치하지 않으므로 Eclipse가 의미 론적 오류를 코드에 지정하고 있습니다. 당신이 애플릿에서 점을 그리려는 경우
, 당신은 당신의 코드에서 애플릿의 paint
방법을 무시하고 줄을 하나 개의 긴 픽셀 (또는 픽셀 크기의 구형 영역)을 그릴 수 있습니다.이런 식으로 뭔가 :
당신이 당신의 캔버스에 몇 가지 포인트를 추가 목록에 저장 한 다음, 다음 반복하고 위의
paint
방법 다음 그릴 계획하는 경우
import java.awt.*;
import javax.swing.JApplet;
public class test extends JApplet {
@Override
public void paint(Graphics g) {
int x = 75;
int y = 75;
g.fillRect(x, y, 1, 1);
}
}
:
public class test extends JApplet {
private List<Point2D> points;
@Override
public void init() {
points = new ArrayList<Point2D>();
points.add(new Point2D.Double(75.0, 75.0));
};
@Override
public void paint(Graphics g) {
g.setColor(Color.BLUE);
for (Point2D p : points) {
int x = (int) p.getX();
int y = (int) p.getY();
g.fillRect(x, y, 1, 1);
}
}
}
하는 경우 귀하의 포인트를 Component
s로 처리하고 싶다면 JPanel
과 같은 기존 클래스 (JComponent
) 중 하나에서 파생 된 사용자 정의 Point 클래스를 만들 수 있습니다. 그러나 이것은 더 복잡합니다.
"JApplet에 포인트 추가"란 무엇을 의미합니까? 애플릿이 Point 객체로 무엇을 할 것이기 때문에 아무 의미가 없습니까? JApplet에 컴포넌트를 추가 할 수는 있지만, 매우 이상한 요청으로 무엇을 달성하려고 하는가? –
''Point'' 클래스가''Component'' 클래스의 하위 클래스가 아니기 때문에 이클립스가 옳다. –
'JApplet applet = new JApplet' 애플릿을 만드는 방법이 아니다. 그것이 컴파일되지 않습니다. 이것은'JApplet applet = new JApplet();'을 컴파일 할 수 있습니다 (그러나 아직도 애플릿을 만드는 올바른 방법은 아닙니다). –