我的图像必须构成8x8网格,因此它是电路板的背景。
我被告知可以使用ImageIcon和JLabel来做到这一点,我尝试了它并且它似乎不起作用。
以下是代码:
for (int i = 0; i < 8; i++)
{
for (int j = 0; j < 8; j++)
{
square=new JLabel();
square.setIcon(icon);
chessBoard.add( square );
}
}
完整代码:http://pastebin.com/YdavUmGz
我是否对这张背景图片做了一些可怕的错误?
任何帮助将不胜感激,提前谢谢。
答案 0 :(得分:3)
你在找这样的东西吗?
import java.awt.*;
import javax.swing.*;
public class ChessBoard extends JFrame {
private JPanel panel;
public ChessBoard() {
panel = new JPanel();
panel.setLayout(new GridLayout(8, 8, 0, 0)); //Create the board
//Add JLabels
for (int i = 0; i < 64; i++) {
JLabel label = new JLabel();
label.setIcon(
new ImageIcon(getClass().getResource("images/face.png")));
panel.add(label);
}
//Add the panel to the JFrame
this.add(panel);
this.pack();
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(
UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
e.printStackTrace();
}
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new ChessBoard();
}
});
}
}