자바 프로그램에 이미 Canvas가 있고, 4 Button을 MouseListener와 함께 추가하여 Canvas에 4 버튼 역할을 할 계획입니다. 물론 4 개의 "버튼"이 다르게 반응합니다.동일한 클래스에 대해 다른 mouseClicked()를 만들 수 있습니까?
4 가지 구성 요소에 대해 하나의 클래스 만 생성 할 수 있습니까 (이 작업을 수행하는 방법을 모릅니다) 또는 4 가지 구성 요소에 대해 4 가지 클래스를 정의해야합니까?
자바 프로그램에 이미 Canvas가 있고, 4 Button을 MouseListener와 함께 추가하여 Canvas에 4 버튼 역할을 할 계획입니다. 물론 4 개의 "버튼"이 다르게 반응합니다.동일한 클래스에 대해 다른 mouseClicked()를 만들 수 있습니까?
4 가지 구성 요소에 대해 하나의 클래스 만 생성 할 수 있습니까 (이 작업을 수행하는 방법을 모릅니다) 또는 4 가지 구성 요소에 대해 4 가지 클래스를 정의해야합니까?
MouseEvent
은 getSource()
인 EventObject
을 확장합니다.
이외에도 단추에 ActionListener
을 추가하는 것이 좋습니다. 마우스에뿐만 아니라 키보드에도 반응하기 때문입니다.
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) ;
}
여전히 여기에는 정의가없는 일부 코드가 있습니다 (아래 참조)하지만 난 그 문제를 설명하기에 충분 바랍니다
감사합니다. Andrew. –
Andrew에게 감사의 말을 전합니다. 그런데 Container가 있고 Component에서 파생 된 새 클래스를 정의하고이 새 클래스에서 객체를 만든 다음 이전에 Component에 추가합니다. 나는 새로운 컴포넌트를 표시하기 위해 새로운 컴포넌트의 paint() 메소드를 사용해야한다고 생각한다. 그러나 마침내 아무 것도 표시되지 않습니다. 내가 할 수있는 일은 내 코드가 길고 추적하기가 어렵지만 필요한 경우 여기에 모두에게 줄 것이다. 다시 한 번 감사드립니다! –
* "내 코드가 다소 길다"* 더 빨리 도움을 받으려면 [SSCCE] (http://sscce.org/)를 게시하십시오. –