从java7升级到java14后如何画图
How to draw images after upgrade from java 7 to java 14
所以我在 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.IIOException: 无法读取输入文件!
在 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/ 文件夹。为什么?没有线索。不过已经解决了
所以我在 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.IIOException: 无法读取输入文件!
在 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/ 文件夹。为什么?没有线索。不过已经解决了