이것은 두 가지 질문입니다.
의 paint
구성원이 코드 네임 1을 사용하는 간단한 2D 그래픽 게임에 가장 적합한 방법입니까? 또는 나는 그것을 시도하지 않아야합니까 ??
2) 아래 코드가 내 Component
을 즉시 지우는 이유는 무엇입니까?사용자 지정 구성 요소 그리기
protected void StartGame()
{
final Component newC = new PaintedComponent();
Container mv = findContainerMainVisual();
mv.addComponent(newC);
mv.setShouldCalcPreferredSize(true);
mv.animateLayout(200);
}
그리고 구성 요소는이 같은 paint
멤버 함수를 오버라이드 (override) :
나는이처럼 내 구성 요소를 초기화
public class PaintedComponent extends Component {
private int nextColour;
public PaintedComponent() {
super();
setSize(new Dimension(200,200));
nextColour = 0x8f8f8f;
}
@Override
public void paint(Graphics g) {
super.paint(g); // I've tried without this, but it's the same
g.setColor(0xffffff);
g.fillRadialGradient(0xffffff, nextColour, 0,0,this.getWidth(), this.getHeight());
}
}
감사합니다. 예, 저는 포커 데모를 보았습니다.하지만 구성 요소를 움직여서 작업하고 싶은 것을 얻을 수 있다고 생각하지 않습니다. - 멋진 아이디어 : 다른 사람 주위를 돌고있는 물건을 보여주고 싶다면 어떻게 할 수 있을까요? 나는 "포커 기술"을 사용하여 그렇게합니까? – noelicus
또한,'calcPreferredSize()'를 오버라이드하는 것은 아무 것도하지 않는 것 같지만,'center of border layout'은 치료를 위해 작용합니다 :) – noelicus
설명에서 이야기하기가 어렵지만 독자적인 레이아웃 매니저를 만들고 사용할 수 있습니다 원하는 위치에 구성 요소를 배치 할 수 있습니다. 레이아웃 관리자는 실제로 매우 간단하게 만들 수 있습니다. 개발자 가이드에서이를 수행하는 샘플이 있습니다. –