我的 java 程序已经有一个 Canvas,我计划在该 Canvas 上添加 4 个带有 MouseListener 的组件以充当 4 个按钮。当然 4 个“按钮”会有不同的反应
我可以只为这 4 个组件创建一个类(我不知道该怎么做),还是我必须为 4 个组件定义 4 个类(这更容易)?
我的 java 程序已经有一个 Canvas,我计划在该 Canvas 上添加 4 个带有 MouseListener 的组件以充当 4 个按钮。当然 4 个“按钮”会有不同的反应
我可以只为这 4 个组件创建一个类(我不知道该怎么做),还是我必须为 4 个组件定义 4 个类(这更容易)?
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 扩展了 Component 并且以下 4 行代码旨在向该 Container 添加一个 Component
我希望这将显示 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) ;
}
这里还有一些没有定义的代码,但我希望这些代码足以描述问题
MouseEvent
extendsEventObject
有方法getSource()
。
顺便说一句,最好添加一个ActionListener
to 按钮,因为它不仅会对鼠标做出反应,还会对键盘做出反应。