상자를 그리고 선으로 연결하는 응용 프로그램을 작성하고 있습니다. 각 줄에는 모서리 (점)가 있습니다. 사용자는 선을 마우스 오른쪽 버튼으로 클릭하여 점을 추가 할 수 있습니다. 그런 다음 점은 위치 집합을 얻습니다.페인트 작업이 실행되고 있지 않지만 시스템이 꺼져 있습니다
다이어그램의 페인트 방법은 모든 점을 반복하고 사용자 정의 (단순, 복귀 (위치! = -1))인지 확인합니다.이 경우 해당 위치에 원 이미지를 그려야합니다.
이제 디버그 모드로 실행되기 때문에 내 소리가 찢어 지지만 그릴 수는 없습니다. 나는 체크 아웃 시스템을 배치하고 정상적으로 실행됩니다. 하지만 if 문은 if place! if 문 앞에 서명하십시오. 나는 정말로 그 문제를 발견 할 수 없다.
페인트 방법 :
public void paint(Graphics2D g) {
g.setColor(Color.RED);//_lineColor);
g.setStroke(new BasicStroke(DEFAULT_LINE_SIZE));
for(Line2D line : _lines) {
g.draw(line);
}
if(_isHover) {
for(ConnectionDot dot : _connectionDots) {
if(dot.isUserDot()) {
System.out.println("YEAH!!!");
//TODO: dot hover?
g.drawImage(_icoConnectionNor.getImage(), dot.getX()-8, dot.getY()-8, null);
//g.drawString("What?", dot.getX(), dot.getY());
} else {
System.out.println("Hell No!");
g.drawString("What?", dot.getX(), dot.getY());
}
}
}
}
점 클래스 :
public class ConnectionDot {
//...
private int _userDotQueueLoc;
/**
* Create new dot.
*
* @param gridController reference to the grid controller.
* @param grid Grid position of the dot.
*/
public ConnectionDot(GridController gridController, Grid grid){
_gridController = gridController;
_gridPos = grid;
_userDotQueueLoc = -1;
}
/**
* Create new user dot.
*
* @param gridController reference to the grid controller.
* @param grid Grid position of the dot.
* @param userDotLocation Location of user dot.
*/
public ConnectionDot(GridController gridController, Grid grid, int userDotLocation){
this(gridController, grid);
_userDotQueueLoc = userDotLocation;
}
/**
* Returns true if the dot is custom.
*
* @return Flag.
*/
public boolean isUserDot(){
return (_userDotQueueLoc != -1);
}
}
콘솔 출력 : 지옥 아니! 지옥 아니요! 지옥 아니요! 지옥 아니요! 예! 지옥 아니요! 지옥 아니요! 지옥 아니요! 지옥 아니요! 예! ... 포인트를 얻으십시오
더 나은 도움을 받으려면 SSCCE (http://pscode.org/sscce.html)를 게시하십시오. –
당신이 생각하는 곳에서는 드로우 링해서는 안됩니다. Andrew가 말했듯이 SSCCE를 게시해야합니다. – jzd
좋아 .. 그냥 링크를보고 정말 그걸로 무엇을 해야할지 모르겠다. (많은 읽기 : P)하지만 문제가 발견되었습니다. –