自定义JFrame类按钮不加载参数,简单的错误?

时间:2015-01-23 15:35:47

标签: java class button jframe

我试图创建一个更整洁的Jframe程序,所以我决定创建一个CustomButton类,所以我不必写出主程序上的所有按钮设置,但参数不在自定义类中更改。

这就是我在主类中创建按钮的方式:

    CustomButton button = new CustomButton("Hello World",2,20,5,5);
    button.addActionListener(this);
    button.setActionCommand("id:1");

    add(button);

CustomButton类:

package com.ezranestel.classes;

import javax.swing.JButton;

public class CustomButton extends JButton{

private static final long serialVersionUID = 1L;
public String buttonID;



public CustomButton(String buttonText,int sizeX, int sizeY,int locationX, int locationY) {
    JButton button = new JButton(); 
    button.setName(buttonText);
    button.setSize(sizeX, sizeY);
    button.setLocation(locationX, locationY);
    System.out.println("Creating a button"+buttonText);
}
}

运行时,控制台表示它正在创建按钮(System.out),但它已创建且尺寸没有改变,也没有名称。

1 个答案:

答案 0 :(得分:1)

你的问题是你的CustomButton类没有扩展任何东西,它只是一个按钮,并没有对它做任何事情。这是您的课程应该有效的版本。

public class CustomButton extends JButton{
public CustomButton(String buttonText,int sizeX, int sizeY,int locationX, int locationY)  {
    super(buttonText);
    this.setSize(sizeX, sizeY);
    this.setLocation(locationX, locationY);
}

}

请参阅顶部如何扩展JButton类?这使它成为JButton的一个版本并创建一个有效的按钮来处理。你设置它的方式是,你创建一个JButton而不用它做任何事情,完全独立于你的CustomButton,所以当你向框架中添加一个CustomButton时,JVM没有关于要添加什么的信息。