들어가기 전에...
아래 내용을 숙지하고 보시는 것이 이해가 빠릅니다.
https://ondolroom.tistory.com/279
https://ondolroom.tistory.com/280
파일생성 및 이미지 넣기
WindowBuilder로 파일을 하나 생성하고
이미지 객체를 생성하자.
이미지 좌표를 설정할 수 있게 변수를 전역공간에 배치하자
나만의 JPanel 만들기
JPanel을 상속받아 나만의 JPanel을 만들자
메인 클래스 안에 inner클래스로 생성한다
코드를 복사하려면 더보기 클릭
더보기
class MyPanel extends JPanel {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g); // 캔버스 비우기
g.drawImage(img, imgX, imgY, this); // 이미지 그리기
}
public MyPanel() {
setFocusable(true); // 입력 포커스 받기
// addMouseListener(new MyMouseListener());
addMouseMotionListener(new MouseAdapter() { // 드래그는 모션리스너다
@Override
public void mouseDragged(MouseEvent e) {
imgX = e.getX(); // 마우스의 좌표를 받아서 이미지 좌표에 저장
imgY = e.getY();
System.out.println(e.getX());
}
});
}
}
여기서 하나 더 추가해야한다.
repaint를 무한반복하는 쓰레드를 추가하는 것이다.
위의 빨간 빈공간에 추가한다.
위 쓰레드 괄호안에 러너블 인터페이스를 넣고 run을 오버라이딩 해준다
while문에 repaint를 넣어 화면을 새로 갱신하자.
daemon으로 만들어 메인이 종료되면 같이 꺼지게 만들자.
(굳이 이렇게 하지 않아도 된다.)
new Thread(러너블).start;을 이용해도 무방
코드를 복사하려면 더보기 클릭
더보기
Thread nt = new Thread(new Runnable() {
@Override
public void run() {
while (true) {
repaint(); // 그림 다시그리기
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
nt.start(); // 스레드 실행
JPanel을 MyPanel로 바꾸기
이제 initialize에 있는 JPanel을 MyPanel로 바꾸자
전역공간에 추가하는것도 잊지말자
결과
'Programming Language > Java' 카테고리의 다른 글
자바 스윙(swing) 배경화면이 흐르도록 만들기 (프로젝트 대비) (4) | 2020.04.28 |
---|---|
200428 (0) | 2020.04.28 |
자바 스윙(SWING) 클릭으로 이미지 변경하기 (프로젝트 대비) (0) | 2020.04.28 |
자바 WindowBuilder 설치 (0) | 2020.04.28 |
자바 스윙(SWING)에서 웹페이지 출력하기 (프로젝트 대비) (0) | 2020.04.28 |