Почему вы создаете внутренний JWindow
, когда ваш класс CreateSplashScreen
уже расширяет JWindow
? В этом нет необходимости. Вы возитесь со своей программой.
Как? На самом деле вы просматриваете внутренний JWindow
по jw.setVisible(true);
, но рисуете изображение в CreateSplashScreen
s `JWindow.
Попробуйте этот код:
public class CreateSplashScreen extends JWindow
{
ImageIcon i = new ImageIcon(getClass().getResource("/createsplashscreen/testImage.png"));
public CreateSplashScreen() {
setSize(700, 500);
setLocationRelativeTo(null);
setVisible(true);
}
@Override
public void paint(Graphics g) {
super.paint(g);
g.drawImage(i.getImage(), 0, 0, null);
}
public void CloseSplashScreen() {
setVisible(false);
}
public static void main(String[] args) {
CreateSplashScreen sp = new CreateSplashScreen();
try {
Thread.sleep(2000);
} catch (InterruptedException ex) {
}
sp.CloseSplashScreen();
}
}
Примечание: Я не знаю о вашем методе получения ресурса изображения из исходной папки.
Изменить: Предполагая, что имя пакета, содержащего ваш класс CreateSplashScreen
, равно createsplashscreen
, убедитесь, что изображение testImage.png
присутствует в пакете createsplashscreen
вашего проекта .