2013-12-21 2 views
1

У меня есть приложение, которое занимает 6 секунд, чтобы начать, и я хочу добавить заставку. У меня есть этот код:Java SplashScreen transparent image

public class SplashScreen extends JWindow { 
    private static final long serialVersionUID = 1L; 

    Image bi; 
    ImageIcon ii; 

    boolean loaded = false; 

    public SplashScreen(String path) { 
     try { 
      bi = Toolkit.getDefaultToolkit().getImage(path); 
      ii = new ImageIcon(bi); 
      setSize(ii.getIconWidth(), ii.getIconHeight()); 
      setLocationRelativeTo(null); 
      loaded = true; 
     } catch (Exception exception) { 
      exception.printStackTrace(); 
     } 
    } 

    public void showSplashScreen(boolean flag) { 
     if (!loaded) { 
      System.err.println("Splash screen image isn't loaded."); 
      return; 
     } 
     setVisible(flag); 
    } 

    public void dispose() { 
     dispose(); 
    } 

    public void paint(Graphics g) { 
     g.drawImage(bi, 0, 0, null); 
    } 
} 

картина выглядит хорошо, но я хочу, чтобы она выглядела прозрачной, и я не могу получить его.

+0

[См следующей ссылке, чтобы сделать ваше изображение прозрачным] [1] [ 1]: http://stackoverflow.com/questions/665406/how-to-make-a-color-transparent-in-a-bufferedimage-and-save-as-png – Muhammad

+0

@Muhammad Мое изображение Png прозрачное .. . Thats для создания изображения PNG с прозрачностью – Dementor

ответ

4

я решил мою проблему, я добавил эту строку:

setBackground(new Color(0, 255, 0, 0)); 
0

вы можете установить непрозрачность вашего JWindow, что сделает его прозрачным

setUndecorated (истина); setOpacity (0.5f);

Я использую JFrame и удалит заголовок окна тоже

он работал для меня