0

私のJavaプログラムにはすでにキャンバスがあります.4つのボタンとして機能するために、そのキャンバスにMouseListenerを持つ4つのコンポーネントを追加する予定です。もちろん、4つの「ボタン」は異なる反応を示します

その 4 つのコンポーネントに対して 1 つのクラスのみを作成できますか (これを行う方法がわかりません)、または 4 つのコンポーネントに対して 4 つのクラスを定義する必要があります (こちらの方が簡単です)。

4

2 に答える 2

0

MouseEventEventObjectメソッドを持つextends getSource()

余談ですがActionListener、マウスだけでなくキーボードにも反応するため、 to ボタンを追加することをお勧めします。

于 2013-05-04T06:28:04.797 に答える
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) ;


}

ここには定義のないコードがまだいくつかありますが、問題を説明するのに十分であることを願っています

于 2013-05-05T05:43:31.537 に答える