2013-05-04 6 views
0

자바 프로그램에 이미 Canvas가 있고, 4 Button을 MouseListener와 함께 추가하여 Canvas에 4 버튼 역할을 할 계획입니다. 물론 4 개의 "버튼"이 다르게 반응합니다.동일한 클래스에 대해 다른 mouseClicked()를 만들 수 있습니까?

4 가지 구성 요소에 대해 하나의 클래스 만 생성 할 수 있습니까 (이 작업을 수행하는 방법을 모릅니다) 또는 4 가지 구성 요소에 대해 4 가지 클래스를 정의해야합니까?

답변

0

MouseEventgetSource()EventObject을 확장합니다.

이외에도 단추에 ActionListener을 추가하는 것이 좋습니다. 마우스에뿐만 아니라 키보드에도 반응하기 때문입니다.

+0

감사합니다. Andrew. –

+0

Andrew에게 감사의 말을 전합니다. 그런데 Container가 있고 Component에서 파생 된 새 클래스를 정의하고이 새 클래스에서 객체를 만든 다음 이전에 Component에 추가합니다. 나는 새로운 컴포넌트를 표시하기 위해 새로운 컴포넌트의 paint() 메소드를 사용해야한다고 생각한다. 그러나 마침내 아무 것도 표시되지 않습니다. 내가 할 수있는 일은 내 코드가 길고 추적하기가 어렵지만 필요한 경우 여기에 모두에게 줄 것이다. 다시 한 번 감사드립니다! –

+0

* "내 코드가 다소 길다"* 더 빨리 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오. –

0
public class ciCanvas extends Container 
{ 
    public void paint() 
    { 
    // I draw an image here, it works perfectly 



     Image MainMenuPlayBtImage = 
      Toolkit.getDefaultToolkit().getImage(ciConfig.CI_BT1_PATH) ;     
     Label MainMenuPlayText = new Label(ciConfig.CI_TEXT_PLAYBT) ; 

     Point MainMenuPlayLocation = new Point(100, 100) ; 

     ciTitle MainMenuBt = new ciTitle(MainMenuPlayText, MainMenuPlayBtImage, MainMenuPlayLocation) ; 

     this.add(MainMenuBt) ; 
    } 

} 

ciTitle는 구성 요소 코드의 다음과 같은 4 선이 나는 또한에 대한 코드를 구현 한 점에 유의, 나는이 ciTitle 구성 요소하지만 아무것도에 나타난 표시됩니다 희망이 컨테이너

에 구성 요소를 추가하는 것을 목표로 확장 ciTitle.paint() 메소드

public void paint(Graphics _GraphicsDev) 
{ 
    setSize(
      this.ciTitleImage.getWidth(this), 
      this.ciTitleImage.getHeight(this)); 

    _GraphicsDev.drawImage(
      this.ciTitleImage, 
      this.ciTitleLocation.x, 
      this.ciTitleLocation.y, 
      this) ; 


} 

여전히 여기에는 정의가없는 일부 코드가 있습니다 (아래 참조)하지만 난 그 문제를 설명하기에 충분 바랍니다

관련 문제