Вероятно, путь к файлу вашего изображения не верен относительно пользовательского каталога.Чтобы узнать, где Java начинает искать, где находится каталог пользователя, поместите что-то вроде этой строки кода где-нибудь в вашей программе:
System.out.println(System.getProperty("user.dir"));
Возможно, вам лучше получить изображение в качестве InputStreamполученный из ресурса, а не в виде файла.например,
image = ImageIO.read(getClass().getResourceAsStream("res/TCHLogo.png"));
Это будет искать изображение по указанному пути относительно местоположения файлов класса, и на самом деле это то, что вы должны сделать, если ваше изображение находитсяв вашем jar-файле.
Редактировать 2
Кроме того, часто вам необходимо сначала вызвать метод paintComponent супер-приложения перед выполнением любого из ваших собственных рисунков, чтобы обеспечить необходимыйхранение может быть сделано, например, избавление от «грязных» битов изображения.например, измените это:
public void paintComponent(Graphics g) {
g.drawImage(image, 0, 0, null);
}
на это:
public void paintComponent(Graphics g) {
super.paintComponent(g); // **** added****
g.drawImage(image, 0, 0, null);
}