我目前的代码,有趣地与另一个IDE(JGrasp)一起工作,虽然我目前正在尝试创建一个使用网络的游戏。 Eclipse允许在一台计算机上进行联网。出于某种原因,这个方法我发布了,它将想象添加到JLabel数组,不适用于eclipse?我是eclipse的新手,不知道为什么会这样?
private JPanel createBoard()
{
// Instantiate Panel with a GridLayout
board = new JPanel();
board.setLayout(new GridLayout(10,10));
// Fill the Panel with an Array of Labels
// Checks for exception
boardSpotArray = new JLabel[100];
try
{
for (int x = 0; x < boardSpotArray.length; x++)
{
boardSpotArray[x] = new JLabel();
boardSpotArray[x].setIcon(new ImageIcon(x + ".jpg"));
board.add(boardSpotArray[x]);
}
}
catch (IndexOutOfBoundsException exception)
{
System.out.println("Array drawer not available, " + exception.getMessage());
}
// return panel
return board;
}
答案 0 :(得分:1)
例如,如果boardSpotArray[0]
为"firstImage"
,则您的相对文件路径为"firstImage.jpg"
。在Eclipse的这种情况下,并且不使用任何特殊的加载器或资源获取器,IDE将首先在项目根目录中查找映像。所以你的文件结构应该是这样的
ProjectRoot
firstImage.jpg <-- image as direct child of project root
src
bin
编辑:
如果您的图片位于src
文件夹
ProjectRoot
src
0.jpg <-- image in src
1.jpg
2.jpg
那么你的路径应该是这样的
new ImageIcon("src/" + x + ".jpg")
答案 1 :(得分:0)
Eclipse中的完整代码
import java.awt.GridLayout;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class oo {
public static JPanel createBoard()
{
// Instantiate Panel with a GridLayout
JPanel board = new JPanel();
board.setLayout(new GridLayout(10,10));
// Fill the Panel with an Array of Labels
// Checks for exception
JLabel[] boardSpotArray = new JLabel[100];
try
{
for (int x = 0; x < boardSpotArray.length; x++)
{
boardSpotArray[x] = new JLabel();
boardSpotArray[x].setIcon(new ImageIcon("healthy-heart.jpg"));
board.add(boardSpotArray[x]);
}
}
catch (IndexOutOfBoundsException exception)
{
System.out.println("Array drawer not available, " + exception.getMessage());
}
// return panel
return board;
}
public static void main(String[] args){
JFrame frame=new JFrame();
JPanel panel=createBoard();
frame.getContentPane().add(panel);
frame.setSize(100, 100);
frame.pack();
frame.setVisible(true);
}
}
"healthy-heart.jpg"
可以替换为任何其他图片。