1
  1. jWindow 打开了 2 秒,但图像没有画出来……有什么想法吗?
  2. 图像文件与类文件位于同一文件夹中...
public class CreateSplashScreen extends JWindow {
    JWindow jw = new JWindow();
    Image scImage = Toolkit.getDefaultToolkit().getImage("testImage.png");
    ImageIcon imageIcon = new ImageIcon(scImage);
    public CreateSplashScreen() {
        try {
            jw.setSize(700, 500);
            jw.setLocationRelativeTo(null);
            jw.setVisible(true);
        } catch (Exception e) {
        }
    }

    public void paint(Graphics g) {
       super.paint(g);
       g.drawImage(scImage, 0, 0, jw);
    }

    public void CloseSplashScreen() {
        jw.setVisible(false);
    }
    
    public static void main(String[] args) {
        CreateSplashScreen sp = new CreateSplashScreen();
        try {
            Thread.sleep(2000);
        } catch (InterruptedException ex) {
            Logger.getLogger(CreateSplashScreen.class.getName()).log(Level.SEVERE, null, ex);
        }
        sp.CloseSplashScreen();
    }
    
}
  1. jWindow 打开了 2 秒,但图像没有画出来……有什么想法吗?
  2. 图像文件与类文件位于同一文件夹中...
4

2 回答 2

0

JWindow当你的类CreateSplashScreen已经扩展时,你为什么要创建一个内部JWindow?没有必要。你在弄乱你的程序。

如何? 您实际上是在查看内部JWindowjw.setVisible(true);但您在CreateSplashScreen`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();
    }    
}

注意:我不知道您从源文件夹中获取图像资源的方法。

编辑:假设包含您的类的包的名称CreateSplashScreencreatesplashscreen,请确保图像testImage.png存在于createsplashscreen您的项目的包中。

于 2020-08-02T02:55:25.540 回答
0

文件结构截图

@Peter对于错误代码,我删除了我在 mamifest.mf 文件中添加的一行并构建了一个程序...这一次,没有给我错误,很奇怪...当我得到它时我正在遵循错误代码并且它使我进入了应用程序生成代码的“CLASSPATH”部分......对不起,我不记得完全感谢彼得的帮助。祝您好运...

于 2020-08-04T14:49:09.613 回答