不确定是否在JAVA中向JButton添加图标

不确定是否在JAVA中向JButton添加图标,java,swing,icons,jbutton,imageicon,Java,Swing,Icons,Jbutton,Imageicon,我正试图制作一个棋盘,但我似乎不知道该把我的代码放在哪里,以便在按钮上添加一个棋子图标。事实上,我不确定这是正确使用代码还是在错误的地方 到目前为止,我的代码如下所示: package gui; import java.awt.Color; import javax.swing.ImageIcon; import javax.swing.JButton; public class Square extends JButton implements Config { public

我正试图制作一个棋盘,但我似乎不知道该把我的代码放在哪里,以便在按钮上添加一个棋子图标。事实上,我不确定这是正确使用代码还是在错误的地方

到目前为止,我的代码如下所示:

package gui;

import java.awt.Color;

import javax.swing.ImageIcon;
import javax.swing.JButton;

public class Square extends JButton implements Config {

    public Square(int n) {
        new ImageIcon("pawn.png");
        setBackground(calcColor(n));
     }

    Color calcColor(int n) {
        boolean everysecondSquare = (n % 2==0);
        boolean everysecondRow = ((n / ROWS) % 2 == 0);
        return (everysecondSquare != everysecondRow?P1Color:P2Color);
    }

    public ChessBoard ChessBoard;
}
我很确定在定义方块背景色的同一位置添加图标会起作用,但显然不起作用。显然,我对java编码非常陌生


我真的搞砸了吗?非常感谢所有反馈。如果需要更多关于代码的信息,请告诉我,我会尽快添加。

试试这个。您需要实际设置按钮的图标

public Square(int n) {
setIcon(new ImageIcon("pawn.png"));
setBackground(calcColor(n));
}
JButton b = new Button(myIconObject)

myButtonObject.setIcon(myIconObject)

可以将带有构造函数的图标对象传递给按钮,也可以使用按钮的setIcon方法

public Square(int n) {
setIcon(new ImageIcon("pawn.png"));
setBackground(calcColor(n));
}
JButton b = new Button(myIconObject)

myButtonObject.setIcon(myIconObject)
请在此处查看文档:

编辑:

在本例中,您可以编辑构造函数的第一行以

public Square(int n) {
    setIcon(new ImageIcon("pawn.png"));
    setBackground(calcColor(n));
}
但是这意味着创建的每个方块都会有一个棋子图标。您最好将其移出构造函数,然后执行以下操作

Square s = new Square(n);
/* And then somewhere more appropriate ...*/
s.setIcon(new ImageIcon("pawn"));

谢谢你,加文!这就解决了:)