자바 JFrame에다가 그래픽 구현 입문...질문이요!

psm6469의 이미지

import javax.swing.*;	//for JFrame
import java.awt.*;	//for Graphics and Contatiner
 
class Ch5SampleGraphics {
 
	public static void main ( String[] args ) {
 
		JFrame win;
		Container contentPane;
		Graphics g;
 
		win = new JFrame("My First Rectangle");
		win.setSize(300, 200);
		win.setLocation(100, 100);
		win.setVisible(true);
 
		contentPane = win.getContentPane();
		g = contentPane.getGraphics();
		g.drawRect(50, 50, 100, 30);
 
	}
}

말그대로 간단한 직사각형을 JFrame의 content pane 위에다가 그리는 프로그램인데요
실행결과는 그냥 덩그러니 JFrame만 뜨고 직사각형이 보이지가 않네요
한글자 한글자 비교해봐도 뭐가 틀렸는지 모르겠네요...교재에 나온 샘플코드를 그대로 작성한건데;;

익명 사용자의 이미지

물론 그려지자 마자, contentPane의 repaint()가 호출되면서 그림이 날아갈 것 같습니다.

repaint()가 호출될 때마다 component들을 다시 그리고 싶다면 class를 따로 만드셔서, paintComponent(Graphics g)를 오버라이드 해보세요.

그림이 그려진 후 repaint()가 호출되면서 이전 그림이 날아가는지는 Thread.sleep()을 호출해보면 되겠군요.

psm6469의 이미지

우선 좋은 답변 감사합니다.
그런데 이 방식 말고 다른 방식으로 도형들을 그리는 방법은 없나요? 굳이 contentPane 사용하지 않고도 되는...

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.