私のJavaプログラムにはすでにキャンバスがあります.4つのボタンとして機能するために、そのキャンバスにMouseListenerを持つ4つのコンポーネントを追加する予定です。もちろん、4つの「ボタン」は異なる反応を示します
その 4 つのコンポーネントに対して 1 つのクラスのみを作成できますか (これを行う方法がわかりません)、または 4 つのコンポーネントに対して 4 つのクラスを定義する必要があります (こちらの方が簡単です)。
私のJavaプログラムにはすでにキャンバスがあります.4つのボタンとして機能するために、そのキャンバスにMouseListenerを持つ4つのコンポーネントを追加する予定です。もちろん、4つの「ボタン」は異なる反応を示します
その 4 つのコンポーネントに対して 1 つのクラスのみを作成できますか (これを行う方法がわかりません)、または 4 つのコンポーネントに対して 4 つのクラスを定義する必要があります (こちらの方が簡単です)。
MouseEvent
EventObject
メソッドを持つextends getSource()
。
余談ですがActionListener
、マウスだけでなくキーボードにも反応するため、 to ボタンを追加することをお勧めします。
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) ;
}
ここには定義のないコードがまだいくつかありますが、問題を説明するのに十分であることを願っています