【问题标题】:How do I make multiple JButtons that work individually through instantiating the class?如何通过实例化类来制作多个单独工作的 JButton?
【发布时间】:2020-05-25 06:17:20
【问题描述】:

我只是java编程的初学者,在课堂上很困惑。我们的任务是制作 3 个 jButton,当您单击它们时,会出现一个 gif。我们老师说我们要展示3个对象的实例化,每个对象控制一个按钮。请帮我;我很困惑!

这是我的代码的一部分(图像图标部分)

public void addButtonsToContentPanel() {
    ImageIcon frog    = new ImageIcon("frog.gif");
    ImageIcon buffalo = new ImageIcon("buffalo.gif");

    fancyButton1      = new JButton("Fancy Button", frog);
    fancyButton1.setRolloverIcon(buffalo);


    p.add(fancyButton1);
    fancyButton1.addActionListener(this);
}

^^ 如何使上面的代码使fancyButton1 与类的实例化相关联?对不起,如果我说的没有道理;我不知道该怎么说。

【问题讨论】:

  • 您有任何代码可以显示您尝试过的内容吗?
  • 嗨,很抱歉,是的,我愿意。我刚刚编辑了我的问题。
  • 听起来他们想要一个创建按钮并管理它的类
  • 是的,听起来不错。对不起,我不是很擅长编程语言):
  • 能否请您详细说明“我们必须展示 3 个对象的实例化,每个对象控制一个按钮”?

标签: java image swing jbutton textfield


【解决方案1】:
fancyButton1 = new ImageButton()

通过调用new ImageButton(),您正在实例化ImageButton 类的新对象。

我不太确定你被要求做什么。以下是实例化三个按钮的代码:

ImageButton fancyButton1 = new ImageButton()
ImageButton fancyButton2 = new ImageButton()
ImageButton fancyButton3 = new ImageButton()

您可能会被要求做的另一件事是定义 Cyber​​pet 类,以便它可以创建自己的 JButton,大致如下:

class CyberPet {

    private String name;
    private ImageIcon imgIcon;
    private ImageIcon rolloverImgIcon;

    // Initialiser
    Cyberpet(String name, String pathToImgIcon, String pathToRolloverImgIcon) {
       this.name = name;
       this.imgIcon = new ImageIcon(pathToImgIcon);
       this.rolloverImgIcon = new ImageIcon(pathToRolloverImgIcon);
    }

    public JButton createButton() {
        JButton btn = new JButton(this.name, this.imgIcon);
        btn.setRolloverIcon(this.rolloverImgIcon);
    }
}    

public void addButtonsToContentPanel() {
    Cyberpet frog = new Cyberpet("frog.gif", "buffalo.gif");
    fancyButton1 = frog.createButton();
    fancyButton1.addActionListener(this);
}

希望这会有所帮助。如果我误解了这个问题,请告诉我,我会尽力提供更好的答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-31
    相关资源
    最近更新 更多