Java - 使用ImageIcon覆盖所有JButtton大小

时间:2016-07-04 07:12:59

标签: java imageicon

如何使用ImageIcon覆盖我的所有JButton?

我的JButtoon尺寸是90x90,我的图像也是

我还为我的JButton设置了一个文本(文本是程序运行所必需的)

代码:(我在mi按钮内部填充)

btnBoton[i][j].setText(Integer.toString(i)+","+Integer.toString(j));
btnBoton[i][j].setIcon(new ImageIcon("img//"+num+".jpg"));

enter image description here

(当我评论我的setText时):

//btnBoton[i][j].setText(Integer.toString(i)+","+Integer.toString(j));
btnBoton[i][j].setIcon(new ImageIcon("img//"+num+".jpg"));

enter image description here

我正在努力完成第二张图片,但没有评论我的setText

1 个答案:

答案 0 :(得分:0)

您可以使用这两种方法将文本放在按钮的中心

btnBoton[i][j].setHorizontalTextPosition(JButton.CENTER);
btnBoton[i][j].setVerticalTextPosition(JButton.CENTER);

和文本将放在按钮的中心,

如果要为按钮分配值而不显示任何文本,而不是.setText(),请创建一个新的类MJButton,其扩展JButton并创建一个字符串字段将其命名为tagdata等,然后封装该字段并使用.setTag().getTag()来执行此操作。

class MJButton extends JButton {

    private String tag;

    public MJButton(String tag, Icon icon) {
        super( icon);
        this.tag = tag;
    }


    public MJButton() {
        super();
    }

    public String getTag() {
        return tag;
    }

    public void setTag(String tag) {
        this.tag = tag;
    }

}

所以使用这个新类以两种方式创建按钮:

  • 1:btnBoton[i][j] = new MJButton(); 并为他们致电.setTag()

    btnBoton[i][j].setTag(Integer.toString(i)+","+Integer.toString(j)); 
    
  • 2:使用第二个构造函数

    将图标和标记分配到一行中的按钮
    btnBoton[i][j] = new MJButton((Integer.toString(i)+","+Integer.toString(j)), new ImageIcon("img//"+num+".jpg"));