Программисты JAVA общаются здесь
Anonymous
Я продолжаю получать ошибку: исключение в потоке "awt-eventqueue-0" java.lang.nullpointerexception: не удается читать из
Сообщение
Anonymous » 27 сен 2025, 21:14
Это мой код в моем классе диспетчера Tile: < /p>
Код: Выделить всё
package tile;
import java.awt.Graphics2D;
import java.io.IOException;
import javax.imageio.ImageIO;
import main.gamePanel;
public class TileManager {
gamePanel gp;
Tile[] tile;
public TileManager(gamePanel gp) {
this.gp = gp;
tile = new Tile[10];
}
public void getTileImage() {
try {
tile[0] = new Tile();
tile[0].image = ImageIO.read(getClass().getResourceAsStream("/tiles/grass.png"));
tile[1] = new Tile();
tile[1].image = ImageIO.read(getClass().getResourceAsStream("/tiles/wall.png"));
tile[2] = new Tile();
tile[2].image = ImageIO.read(getClass().getResourceAsStream("/tiles/water.png"));
}catch(IOException e) {
e.printStackTrace();
}
}
public void draw(Graphics2D g2) {
g2.drawImage(tile[0].image, 48, 48, gp.tileSize, gp.tileSize, null);
}
}
< /code>
И это код, который не может нарисовать в моем классе Game Panel: < /p>
public void update() {
player.update();
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
tileManager.draw(g2);
player.draw(g2);
g2.dispose();
}
}
Код работает, когда я удаляю строку «tilemanager.draw (g2); но ничего не рисую, и я получаю ошибку, когда добавляю строку обратно.>
Подробнее здесь:
https://stackoverflow.com/questions/797 ... lang-nullp
1758996849
Anonymous
Это мой код в моем классе диспетчера Tile: < /p> [code]package tile; import java.awt.Graphics2D; import java.io.IOException; import javax.imageio.ImageIO; import main.gamePanel; public class TileManager { gamePanel gp; Tile[] tile; public TileManager(gamePanel gp) { this.gp = gp; tile = new Tile[10]; } public void getTileImage() { try { tile[0] = new Tile(); tile[0].image = ImageIO.read(getClass().getResourceAsStream("/tiles/grass.png")); tile[1] = new Tile(); tile[1].image = ImageIO.read(getClass().getResourceAsStream("/tiles/wall.png")); tile[2] = new Tile(); tile[2].image = ImageIO.read(getClass().getResourceAsStream("/tiles/water.png")); }catch(IOException e) { e.printStackTrace(); } } public void draw(Graphics2D g2) { g2.drawImage(tile[0].image, 48, 48, gp.tileSize, gp.tileSize, null); } } < /code> И это код, который не может нарисовать в моем классе Game Panel: < /p> public void update() { player.update(); } public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D)g; tileManager.draw(g2); player.draw(g2); g2.dispose(); } [/code] } Код работает, когда я удаляю строку «tilemanager.draw (g2); но ничего не рисую, и я получаю ошибку, когда добавляю строку обратно.> Подробнее здесь: [url]https://stackoverflow.com/questions/79776928/i-keep-getting-the-error-exception-in-thread-awt-eventqueue-0-java-lang-nullp[/url]