将自定义方法添加到JButton类

时间:2015-10-17 23:08:53

标签: java swing jbutton

我有一个Java应用程序,我想将按钮格式化为Active或Inactive(也可能是悬停方法)。

我想实现它的代码:

//Home Tab - Active by default
home = new TabButton();
home.setSize(new Dimension(tabWidth, tabHeight));
home.setFont(getLauncherFont(34));
home.setForeground(Color.white);
home.setText("HOME");
home.setBounds(160, 0, tabWidth, tabHeight);
home.setActive(); --> This Method is what I would like to create

我已经有一个类为选项卡创建JButton:

package com.anarcist.minemodloaderv1.skin.components;

import java.awt.Color;
import javax.swing.JButton;

/**
 *
 * @author anarcist
 */
public class TabButton extends JButton {
    public TabButton() {
        this.setBorderPainted(false);
        this.setFocusPainted(false);
        this.setContentAreaFilled(true);
        this.setBackground(Color.blue);
    }
}

我研究过抽象类。但是我的TabButton类已经扩展了JButton。

我想要一个像这样的方法:

public void setActive(){
    this.setBackground(Color.red);
    //Any other changes a want to make regularly
}

可以像home.setActive();

一样实施

我的问题我认为:实现我正在寻找的东西是否容易,或者每次都必须手动设置所有属性?

1 个答案:

答案 0 :(得分:2)

您在帖子中描述的内容可以这样完成:

package com.anarcist.minemodloaderv1.skin.components;

import java.awt.Color;
import javax.swing.JButton;

/**
 *
 * @author anarcist
 */
public class TabButton extends JButton {

    public TabButton() {// initialize

        this.setBorderPainted(false);
        this.setFocusPainted(false);
        this.setContentAreaFilled(true);
        this.setBackground(Color.blue);

    }

    // add your own methods or override JButton methods
    public void setActive(){
       //Add code
       //example: setEnabled(true);
    }
}