<div>class panel extends JPanel<br />{ <br /> void main()<br /> {<br /> component com = new component();<br /> add(com,layout);<br /> trd = new Thread(circle);<br /> <font color="rgb(255,0,0)">trd.start();</font><br /> }</div> <div>}</div> <div> </div> <div>class component extends JPanel implements Runnable<br />{<br /> public void run()<br /> {<br /> Draw fill = new Draw();<br /> Thread fillTrd = new Thread(fill);<br /> <font color="rgb(255,0,0)">fillTrd.start();</font></div> <div> }<br /> <br /> public void paint(Graphics g)//까만원 그리기<br /> {<br /> super.paint(g);<br /> Graphics2D g2 = (Graphics2D) g;</div> <div> g2.setColor(Color.black);<br /> g.fillOval(35,25,210,210);<br /> }</div> <div> }</div> <div> </div> <div>public class Draw extends JPanel implements Runnable{<br /> public void run()<br /> {<br /> <font color="rgb(255,0,0)">repaint();//이부분이 안됩니다</font><br /> System.out.println("확인1");<br /> }<br /> public Color color = new Color(255,0,0);<br /> <br /> public void paint(Graphics g) //빨간원 그리기<br /> {<br /> System.out.print("확인2");</div> <div> super.paint(g);<br /> Graphics2D g2 = (Graphics2D) g;<br /> g2.setColor(color);<br /> g.fillOval(40,30,200,200);<br /> }<br />}</div> <div> </div> <div>소스는 최대한 간략하게 간추렸습니다<br /></div> <div>panel에 add를 해서 component 클래스의 까만원을 그립니다</div> <div>이후 fillTrd.start();로 스레드가 실행되면 Draw클래스의 빨간 원으로 repaint되어 색이 바뀌어지는것이 목적입니다</div> <div> </div> <div>실행을 해 보니 repaint부분은 그냥 지나치는것인지 확인2라는 문구가 안나고오 오로지 확인1만 나옵니다.</div> <div>원래는 component의 run 메소드 안에서 repaint 처리를 했었는데 run메소드자체를 최대한 빠르게 수행해야 하는지라</div> <div>처리속도를 조금이나마 줄여보려고 라인을 줄이고 스레드로 나눴습니다</div> <div> </div> <div>교재에는 별다른 내용이 없고 인터넷에서 찾아보아도 제게 맞는 답이 없어서 이렇게 글을 쓰게 되었습니다</div> <div>읽어주셔서 감사하고 도움주시면 감사하겠습니다</div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.