如何使用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"));
(当我评论我的setText时):
//btnBoton[i][j].setText(Integer.toString(i)+","+Integer.toString(j));
btnBoton[i][j].setIcon(new ImageIcon("img//"+num+".jpg"));
我正在努力完成第二张图片,但没有评论我的setText
答案 0 :(得分:0)
您可以使用这两种方法将文本放在按钮的中心
btnBoton[i][j].setHorizontalTextPosition(JButton.CENTER);
btnBoton[i][j].setVerticalTextPosition(JButton.CENTER);
和文本将放在按钮的中心,
如果要为按钮分配值而不显示任何文本,而不是.setText()
,请创建一个新的类MJButton
,其扩展JButton
并创建一个字符串字段将其命名为tag
或data
等,然后封装该字段并使用.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"));