所以我在jdk 7下写了一个游戏,它导入并绘制了这样的图形:
ImageReader.java:
public static BufferedImage button_quit;
public void fetchGraphics() {
try {
button_quit = ImageIO.read(new File("rsc/client/gui/button_quit.jpeg"));
} catch(Exception e) {
e.printStackTrace();
System.out.println("Exception thrown in ClientVariables.class while importing overlay graphics.");
}
}
DrawClient.java:
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g.drawImage(ClientVariables.button_quit, ClientVariables.quitButtonX, ClientVariables.quitButtonY, null);
repaint();
}
问题是,在jdk 7中,它运行得很好,但由于我升级到jdk 14,没有导入任何图形,它只绘制了所有硬编码的线条和内容。我必须如何更改代码才能使其再次工作,我不知道(关于如何在java中绘制图像的教程是几年前的,因此也在jdk 7或8中(
编辑:它是相同的代码,相同的ide,甚至不是东西所在的另一个文件夹。图形的位置是应该的。我以前没有提到的:图形没有加载。我反复得到堆栈跟踪和错误消息。堆栈跟踪:
javax.imageio.IIO异常:无法读取输入文件
在java.desktop/javax.imageio.imageio.read(imageio.java:1308(
在GUI上。ClientVariables。(ClientVariables.java:100(
在MAIN。CodeEntry.main(CodeEntry.java:70(
我怀疑可能是问题所在的是,新版本中的代码不期望;rsc/";文件夹与";src/";文件夹,但可能在其他地方。
我自己解决了,可能是IDE搞砸了。基本上,在旧程序中,rsc/文件夹与包含该应用程序包的src/文件夹位于同一文件夹中。现在程序搜索上面一个文件夹的rsc/文件夹。为什么?没有线索。但问题已经解决了。