Col*_*lin 3 java swing intellij-idea imageicon
public class GUI
{
JFrame frame;
JPanel squares[][];
/* Constructor credited to stackoverflow user ranzy
http://stackoverflow.com/questions/2535417/chess-board-in-java */
public GUI()
{
frame = new JFrame("Chess");
squares = new JPanel[8][8];
frame.setSize(500, 500);
frame.setLayout(new GridLayout(8, 8));
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
squares[i][j] = new JPanel();
if ((i + j) % 2 == 0) {
squares[i][j].setBackground(Color.white);
} else {
squares[i][j].setBackground(Color.orange);
}
frame.add(squares[i][j]);
}
}
ImageIcon pawnW = new ImageIcon(getClass().getResource("/images/pawnW.png"));
ImageIcon knightW = new ImageIcon("images/knightW.png");
ImageIcon bishopW = new ImageIcon("/images/bishopW.png");
ImageIcon rookW = new ImageIcon("/images/rookW.png");
ImageIcon queenW = new ImageIcon("/images/queenW.png");
ImageIcon kingW = new ImageIcon("/images/kingW.png");
ImageIcon pawnB = new ImageIcon("/images/pawnB.png");
ImageIcon knightB = new ImageIcon("/images/knightB.png");
ImageIcon bishopB = new ImageIcon("/images/bishopB.png");
ImageIcon rookB = new ImageIcon("/images/rookB.png");
ImageIcon queenB = new ImageIcon("/images/queenB.png");
ImageIcon kingB = new ImageIcon("/images/kingB.png");
squares[0][0].add(new JLabel(rookW));
squares[1][0].add(new JLabel(knightW));
squares[2][0].add(new JLabel(bishopW));
squares[3][0].add(new JLabel(queenW));
squares[4][0].add(new JLabel(kingW));
squares[5][0].add(new JLabel(bishopW));
squares[6][0].add(new JLabel(knightW));
squares[7][0].add(new JLabel(rookW));
squares[0][7].add(new JLabel(rookB));
squares[1][7].add(new JLabel(knightB));
squares[2][7].add(new JLabel(bishopB));
squares[3][7].add(new JLabel(queenB));
squares[4][7].add(new JLabel(kingB));
squares[5][7].add(new JLabel(bishopB));
squares[6][7].add(new JLabel(knightB));
squares[7][7].add(new JLabel(rookB));
for (int i = 0; i < 8; i++)
{
squares[i][1].add(new JLabel (pawnW));
squares[i][6].add(new JLabel (pawnB));
}
}
}
Run Code Online (Sandbox Code Playgroud)
我无法显示图标。我已经浏览了多个关于此的教程以及其他人的代码。
我尝试了三种不同的方法:
ImageIcon pawnW = new ImageIcon(getClass().getResource("/images/pawnW.png"));
ImageIcon knightW = new ImageIcon("images/knightW.png");
ImageIcon bishopW = new ImageIcon("/images/bishopW.png");
Run Code Online (Sandbox Code Playgroud)
在任何事情之前,作为旁注,
setVisible
应该是您添加所有组件后做的最后一件事
还要检查以下
对我来说很好用 getClass().getResource()
String path = "/images/stackoverflow2.png";
ImageIcon pawnW = new ImageIcon(getClass().getResource(path));
Run Code Online (Sandbox Code Playgroud)
检查下面的所有内容,然后在纠正它时,构建它,然后运行它。
文件结构后 生成。图像应该被复制到类路径
import java.awt.Color;
import java.awt.GridLayout;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class GUI
{
JFrame frame;
JPanel squares[][];
public GUI()
{
frame = new JFrame("Chess");
squares = new JPanel[8][8];
frame.setSize(500, 500);
frame.setLayout(new GridLayout(8, 8));
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
squares[i][j] = new JPanel();
if ((i + j) % 2 == 0) {
squares[i][j].setBackground(Color.white);
} else {
squares[i][j].setBackground(Color.orange);
}
frame.add(squares[i][j]);
}
}
String path = "/images/stackoverflow2.png";
ImageIcon pawnW = new ImageIcon(getClass().getResource(path));
ImageIcon knightW = new ImageIcon(getClass().getResource(path));
ImageIcon bishopW = new ImageIcon(getClass().getResource(path));
ImageIcon rookW = new ImageIcon(getClass().getResource(path));
ImageIcon queenW = new ImageIcon(getClass().getResource(path));
ImageIcon kingW = new ImageIcon(getClass().getResource(path));
ImageIcon pawnB = new ImageIcon(getClass().getResource(path));
ImageIcon knightB = new ImageIcon(getClass().getResource(path));
ImageIcon bishopB = new ImageIcon(getClass().getResource(path));
ImageIcon rookB = new ImageIcon(getClass().getResource(path));
ImageIcon queenB = new ImageIcon(getClass().getResource(path));
ImageIcon kingB = new ImageIcon(getClass().getResource(path));
squares[0][0].add(new JLabel(rookW));
squares[1][0].add(new JLabel(knightW));
squares[2][0].add(new JLabel(bishopW));
squares[3][0].add(new JLabel(queenW));
squares[4][0].add(new JLabel(kingW));
squares[5][0].add(new JLabel(bishopW));
squares[6][0].add(new JLabel(knightW));
squares[7][0].add(new JLabel(rookW));
squares[0][7].add(new JLabel(rookB));
squares[1][7].add(new JLabel(knightB));
squares[2][7].add(new JLabel(bishopB));
squares[3][7].add(new JLabel(queenB));
squares[4][7].add(new JLabel(kingB));
squares[5][7].add(new JLabel(bishopB));
squares[6][7].add(new JLabel(knightB));
squares[7][7].add(new JLabel(rookB));
for (int i = 0; i < 8; i++)
{
squares[i][4].add(new JLabel (pawnW));
squares[i][6].add(new JLabel (pawnB));
}
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable(){
public void run() {
new GUI();
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4161 次 |
最近记录: |