2012-09-12 7 views
0

그래픽 메소드 'g'를 paint 메소드의 액션 메소드에 전달해야합니다. 이 같은 뭔가 :그래픽 객체를 액션 메소드로 전달

public boolean action(Event event, Object obj) 
{ 

    Graphics g=getGraphics(); 
    repaint(); 

    if (event.target == choice) 
    String selection = choice.getSelectedItem(); 
    if (selection.equals("do something")) 
    { 
     doSomething(g); 
     repaint(); 
    } 
    else if (selection.equals("do something else")) 
    { 
     Somethingelse(g); 
     repaint(); 
    } 

    return(true); 
} 

     else 
      return(false); 
    } 

나는 변수 세계적인 그래픽으로 g을 선언하려고 노력하지만, 작품을 나던. 이것을 할 또 다른 방법이 있습니까? 어떤 도움을 주셔서 감사합니다 .. 감사합니다 ...

+0

어떤 언어입니까? 이 자바인가? – tenorsax

+0

오브젝트와 3d 태그는 이것이 정말로 자바라면별로 의미가 없습니다. 스윙과 매우 흡사합니다. –

답변

0

나는 이것이 자바라고 가정하고 당신은 스윙 컴포넌트를 오버라이드하고있다. 그래서 getGraphics()가 실제로 사용 가능하다.

시도해보십시오. Graphics g = this.createGraphics(), 도움이 될만한 답변입니다. 또한 Event Dispatch Thread에서 repaint() 메서드를 호출해야합니다. 이 작업이 UI에 연결되어있는 경우는 일반적입니다. 확실히, 재구성을 Runnable로 감싸서 EDT의 끝으로 보내십시오 :

SwingUtilities.invokeLater(new Runnable() { 
    public void run() { 
     repaint(); 
    } 
} 
관련 문제