我想上传我的项目,一个纸牌游戏给Github,它有一张来自我硬盘的照片作为游戏卡牌桌。有没有办法编译/运行和上传它没有代码将整个文件路径硬编码到它?截至目前,它:
public static void main(String[] args){
JFrame frame = new JFrame();
JLabel panel = new JLabel(new ImageIcon("C:\\Users\\MyName\\Documents\\javaprojects\\Cardgame\\cardgameProject\\cardgameTableCanvas.jpg"));
frame.setSize(WIDTH,HEIGHT);
panel.setSize(WIDTH,HEIGHT);
frame.add(panel);
frame.setTitle("Test Canvas");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
CardgameTable sampleTable = new CardgameTable();
frame.add(sampleTable);
frame.setVisible(true);
}
如果其他人从Git中提取问题我也不想要问题,我认为文件路径可以做到。
答案 0 :(得分:1)
这实际上取决于你的java代码所在的位置!有几个工具允许您创建本地文件路径的URL对象,这些工具可以输入ImageIcon创建!
如果图像与java代码位于同一目录(文件夹)中,则以下内容应该可以确保甚至在其他计算机上引用该文件:
URL cardgameCanvas = new File("cardgameTableCanvas.jpg").toURI().toURL();
JLabel panel = new JLabel(new ImageIcon(cardgameCanvas));
(For java 7+:Paths.get("cardgameTableCanvas.jpg").toUri().toURL()
)
这应该允许您通过首先创建链接到它的URL对象和passing that URL object到新的ImageIcon对象来引用图像!
希望这有帮助!
修改强>
您也可以这样做
JLabel panel = new JLabel(new ImageIcon("cardgameTableCanvas.jpg"));
)
修改2
你的主人会看起来像这样(如果你想走'#34;艰难的方式"):
public static void main(String[] args){
JFrame frame = new JFrame();
URL cardgameCanvas = new File("cardgameTableCanvas.jpg").toURI().toURL();
JLabel panel = new JLabel(new ImageIcon(cardgameCanvas));
frame.setSize(WIDTH,HEIGHT);
panel.setSize(WIDTH,HEIGHT);
frame.add(panel);
frame.setTitle("Test Canvas");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
CardgameTable sampleTable = new CardgameTable();
frame.add(sampleTable);
frame.setVisible(true);
}
但是因为它适合你,我会建议只引用本地文档本身:
public static void main(String[] args){
JFrame frame = new JFrame();
JLabel panel = new JLabel(new ImageIcon("cardgameTableCanvas.jpg"));
frame.setSize(WIDTH,HEIGHT);
panel.setSize(WIDTH,HEIGHT);
frame.add(panel);
frame.setTitle("Test Canvas");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
CardgameTable sampleTable = new CardgameTable();
frame.add(sampleTable);
frame.setVisible(true);
}