0
I am making a game in it contains several images and sounds that stay in the project folder when exporting the . jar all the imports disappear said my problem is that I was using ImageIO.read(new File("res/Playbutt.png"));
and it wouldn’t work after exporting and suggested using Class.getResourceAsStream but I’m getting several errors while using, even using Classloader.getResourceAsStream it says the path is wrong or empty, wanted to know how to make the import work with Class.getResourceAsStream or another method that works after export
package src;
import java.awt.Rectangle;
import java.awt.geom.AffineTransform;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class Menu {
public Rectangle Playbutton = new Rectangle( Game.WIDTH/2-25, 60, 50, 10);
public Rectangle Exitbutton = new Rectangle( Game.WIDTH/2-25, 80, 50, 10);
public static String desc = null;
private BufferedImage imagePlay;
private BufferedImage players1;
private BufferedImage players2;
private BufferedImage imageExit;
private BufferedImage IMPOSSIBLE;
private BufferedImage Hard;
private BufferedImage Easy;
private BufferedImage Normal;
private BufferedImage imageTitle;
private BufferedImage imageResume;
private BufferedImage imageMain;
private BufferedImage OPTIONS;
private BufferedImage BACK;
public static int brightloss = 0;
public static int stibaum = 0;
public static boolean sti = true;
public static enum STATE{
MAIN,
P1P2,
INGAME,
DIFICULTY,
OPTIONS
};
public static STATE State = STATE.MAIN;
public static STATE Statepre = State;
public static boolean dark = true;
public static Slider slider;
public static void SAVESTATE(){
Statepre = State;
}
public Menu() {
slider = new Slider(100, 100, 50, false, brightloss);
try {
imagePlay = ImageIO.read(new File("res/Playbutt.png"));
IMPOSSIBLE = ImageIO.read(new File("res/IMPOSSIbutt.png"));
Hard = ImageIO.read(new File("res/Hardbutt.png"));
Easy = ImageIO.read(new File("res/Easybutt.png"));
Normal = ImageIO.read(new File("res/Normalbutt.png"));
players1 = ImageIO.read(new File("res/1P.png"));
players2 = ImageIO.read(new File("res/2P.png"));
imageExit = ImageIO.read(new File("res/Exitbutt.png"));
imageTitle = ImageIO.read(new File("res/Title.png"));
imageResume = ImageIO.read(new File("res/Resumebutt.png"));
imageMain = ImageIO.read(new File("res/Mainbutt.png"));
OPTIONS = ImageIO.read(new File("res/Optbutt.png"));
BACK = ImageIO.read(new File("res/Backbutt.png"));
} catch (IOException ex) {
// handle exception...
}
}
public void render(Graphics g) {
g.setFont(new Font("DefaultFont", Font.PLAIN, 10));
g.setColor(Colors.Trans_GREEN3);
g.fillRect(0, Game.HEIGHT-10, Game.WIDTH,10);
g.fillRect(0, Game.HEIGHT-9, Game.WIDTH,9);
g.fillRect(0, Game.HEIGHT-8, Game.WIDTH,8);
g.fillRect(0, Game.HEIGHT-7, Game.WIDTH,7);
g.fillRect(0, Game.HEIGHT-6, Game.WIDTH,6);
g.fillRect(0, Game.HEIGHT-5, Game.WIDTH,5);
g.setColor(Colors.Trans_GREEN3);
g.fillRect(0, 0, Game.WIDTH,10);
g.fillRect(0, 0, Game.WIDTH,9);
g.fillRect(0, 0, Game.WIDTH,8);
g.fillRect(0, 0, Game.WIDTH,7);
g.fillRect(0, 0, Game.WIDTH,6);
g.fillRect(0, 0, Game.WIDTH,5);
g.setColor(Colors.Trans_GREEN3);
g.fillRect(0, 0, 10,Game.HEIGHT);
g.fillRect(0, 0, 9,Game.HEIGHT);
g.fillRect(0, 0, 8,Game.HEIGHT);
g.fillRect(0, 0, 7,Game.HEIGHT);
g.fillRect(0, 0, 6,Game.HEIGHT);
g.fillRect(0, 0, 5,Game.HEIGHT);
g.setColor(Colors.Trans_GREEN3);
g.setColor(Colors.Trans_GREEN3);
g.fillRect(Game.WIDTH-10, 0, 10,Game.HEIGHT);
g.fillRect(Game.WIDTH-9, 0, 9,Game.HEIGHT);
g.fillRect(Game.WIDTH-8, 0, 8,Game.HEIGHT);
g.fillRect(Game.WIDTH-7, 0, 7,Game.HEIGHT);
g.fillRect(Game.WIDTH-6, 0, 6,Game.HEIGHT);
g.fillRect(Game.WIDTH-5, 0, 5,Game.HEIGHT);
Graphics2D g2d = (Graphics2D) g;
if(State==STATE.MAIN) {
if(MouseInput.mx>=95 && MouseInput.mx<=145) {
if(MouseInput.my>60&&MouseInput.my<70) {
g.setColor(Colors.outline);
g.fillRect(Game.WIDTH/2-26, 59, 54, 14);
}
else if(MouseInput.my>80&&MouseInput.my<90) {
g.setColor(Colors.outline);
g.fillRect(Game.WIDTH/2-26, 79, 54, 14);
}
else if(MouseInput.my>40&&MouseInput.my<50) {
g.setColor(Colors.outline);
g.fillRect(Game.WIDTH/2-26, 39, 54, 14);
desc=("");
g.setColor(Color.green);
g.drawString(desc,45 , Game.HEIGHT/2+50);
}
}
g2d.drawImage(this.OPTIONS, Game.WIDTH/2-25, 60, null);
g2d.drawImage(this.imagePlay, Game.WIDTH/2-25, 40, null);
g2d.drawImage(this.imageExit, Game.WIDTH/2-25, 80, null);
double locationX = imageTitle.getWidth() / 2;
double locationY = imageTitle.getHeight() / 2;
AffineTransform tx = AffineTransform.getRotateInstance((Math.toRadians(stibaum)), locationX, locationY);
AffineTransformOp op = new AffineTransformOp(tx, AffineTransformOp.TYPE_BILINEAR);
AffineTransform old = g2d.getTransform();
g2d.drawImage(op.filter(imageTitle, null), Game.WIDTH/2-50, 10, null);
g2d.setTransform(old);
//things you draw after here will not be rotated
}
else if(State==STATE.INGAME) {
if(MouseInput.mx>=95 && MouseInput.mx<=145) {
if(MouseInput.my>70&&MouseInput.my<80) {
g.setColor(Colors.outline);
g.fillRect(Game.WIDTH/2-26, 69, 54, 14);
}
else if(MouseInput.my>90&&MouseInput.my<100) {
g.fillRect(Game.WIDTH/2-26, 89, 54, 14);
}else if(MouseInput.my>50&&MouseInput.my<60) {
g.setColor(Colors.outline);
g.fillRect(Game.WIDTH/2-26, 49, 54, 14);
}
}
g2d.drawImage(this.imageResume, Game.WIDTH/2-25, 70, null);
g2d.drawImage(this.imageMain, Game.WIDTH/2-25, 50, null);
g2d.drawImage(this.imageExit, Game.WIDTH/2-25, 90, null);
g2d.drawImage(this.imageTitle, Game.WIDTH/2-50, 10, null);}
else if(State==STATE.P1P2) {
if(MouseInput.mx>=15 && MouseInput.mx<=40) {
if(MouseInput.my>=106&&MouseInput.my<118) {
g.setColor(Colors.outline);
g.fillRect(14, Game.HEIGHT-29, 28, 15);
desc=("");
g.setColor(Color.green);
g.drawString(desc,45 , Game.HEIGHT/2+50);
}}
if(MouseInput.my>30&&MouseInput.my<90) {
if(MouseInput.mx>=60 && MouseInput.mx<=120) {
g.setColor(Colors.outline);
g.fillRect(Game.WIDTH/2-61, 29,66, 66);
}
if(MouseInput.mx>=130 && MouseInput.mx<=190) {
g.setColor(Colors.outline);
g.fillRect(Game.WIDTH/2+9, 29,66, 66);
}}
g2d.drawImage(this.players1, Game.WIDTH/2-60, 30, null);
g2d.drawImage(this.players2, Game.WIDTH/2+10, 30, null);
g2d.drawImage(this.BACK, 15, Game.HEIGHT-28, null);
}
else if(State==STATE.DIFICULTY) {
if(MouseInput.mx>=15 && MouseInput.mx<=40) {
if(MouseInput.my>=106&&MouseInput.my<118) {
g.setColor(Colors.outline);
g.fillRect(14, Game.HEIGHT-29, 28, 15);
desc=("");
g.setColor(Color.green);
g.drawString(desc,45 , Game.HEIGHT/2+50);
}}
if(MouseInput.mx>=95 && MouseInput.mx<=145) {
if(MouseInput.my>70&&MouseInput.my<80) {
g.setColor(Colors.outline);
g.fillRect(Game.WIDTH/2-26, 69, 54, 14);
g.setColor(Color.green);
desc=("for those who want challenge");
g.drawString(desc,50 , Game.HEIGHT/2+50);
}
else if(MouseInput.my>90&&MouseInput.my<100) {
g.setColor(Colors.outline);
g.fillRect(Game.WIDTH/2-26, 89, 54, 14);
desc=("for those who want to cry");
g.setColor(Color.green);
g.drawString(desc,70 , Game.HEIGHT/2+50);
}else if(MouseInput.my>50&&MouseInput.my<60) {
g.setColor(Colors.outline);
g.fillRect(Game.WIDTH/2-26, 49, 54, 14);
desc=("for those who want to play casually");
g.setColor(Color.green);
g.drawString(desc,45 , Game.HEIGHT/2+50);
}if(Ball.pmih) {
if(MouseInput.my>33&&MouseInput.my<44) {
g.setColor(Colors.outline);
g.fillRect(Game.WIDTH/2-26, 32, 54, 14);
desc=("for those who don't really have a life");
g.setColor(Color.green);
g.drawString(desc,45 , Game.HEIGHT/2+50);
}}
}
if(Ball.pmih) {
g2d.drawImage(this.IMPOSSIBLE, Game.WIDTH/2-25, 33, null);}
g2d.drawImage(this.Normal, Game.WIDTH/2-25, 70, null);
g2d.drawImage(this.Easy, Game.WIDTH/2-25, 50, null);
g2d.drawImage(this.Hard, Game.WIDTH/2-25, 90, null);
g2d.drawImage(this.imageTitle, Game.WIDTH/2-50, 10, null);
g2d.drawImage(this.BACK, 15, Game.HEIGHT-28, null);
}
else if(State==STATE.OPTIONS) {
if(MouseInput.mx>=15 && MouseInput.mx<=40) {
if(MouseInput.my>=106&&MouseInput.my<118) {
g.setColor(Colors.outline);
g.fillRect(14, Game.HEIGHT-29, 28, 15);
desc=("");
g.setColor(Color.green);
g.drawString(desc,45 , Game.HEIGHT/2+50);
}}
slider.render(g);
g2d.drawImage(this.imageTitle, Game.WIDTH/2-50, 10, null);
g2d.drawImage(this.BACK, 15, Game.HEIGHT-28, null);
}
}
public void tick() {
slider.tick();
if(stibaum<5&&sti==true) {
stibaum+=1;
}
if(stibaum>=5&&sti==true) {sti=false;}
if(stibaum>-5&&sti==false) {
stibaum-=1;
}
if(stibaum<=-5&&sti==false) {sti=true;}
if(State==STATE.OPTIONS) {
Statepre=STATE.MAIN;
}
else if(State==STATE.P1P2) {
Statepre=STATE.MAIN;
}
else if(State==STATE.DIFICULTY) {
Statepre=STATE.P1P2;
}
}
}