2010-06-18 3 views
1

Я хотел бы создать JWindow, у которого есть непрозрачность, но я хочу изменить цвет непрозрачности по умолчанию в Swing.JWindow с черной непрозрачностью

Так, например, если я пишу:

AWTUtilities.setWindowOpacity(this, 0.5f); 

Это сделает делать именно то, что я хочу с одним исключением, цвет белый. Как я могу сделать цвет черным?

Я пробовал все от setBackground(Color.Black) и т.д. на "этом" ...

ответ

2
 window.getContentPane().setBackground(Color.BLACK); 
0

Прозрачный JWindow.

public class TransparentWindow{ 

    JWindow window; 

    public TransparentWindow(){ 
     initializeTransparentWindow(); 
    } 

    private void initializeTransparentWindow() { 
     // searching graphical configuration that provide transparent window 
     GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment(); 
     GraphicsDevice[] devices = env.getScreenDevices(); 
     GraphicsConfiguration translucencyCapableGC = null; 
     for (int i = 0; i < devices.length && translucencyCapableGC == null; i++) { 
      GraphicsConfiguration[] configs = devices[i].getConfigurations(); 
      for (int j = 0; j < configs.length && translucencyCapableGC == null; j++) { 
       if (AWTUtilities.isTranslucencyCapable(configs[j])) { 
        translucencyCapableGC = configs[j]; 
       } 
      } 
     } 
     if (translucencyCapableGC != null) { 
      window = new JWindow(translucencyCapableGC) { 
       @Override 
       public void paint(Graphics g) { 
        if (getWidth() > 4 && getHeight() > 4) { 
         g.clearRect(0, 0, getWidth(), getHeight()); 
         g.setColor(new Color(0x0, 0x0, 0x0, 0xaa)); 
         g.fillRect(0, 0, 1, getHeight()); 
         g.fillRect(0, 0, getWidth(), 1); 
         g.fillRect(0, getHeight() - 1, getWidth(), 1); 
         g.fillRect(getWidth() - 1, 0, 1, getHeight()); 
         g.setColor(new Color(0x0, 0x0, 0x0, 0x10)); 
         g.fillRect(1, 1, getWidth() - 1, getHeight() - 1); 
        } 
       }; 
      }; 
      AWTUtilities.setWindowOpaque(window, false); 
     } 
     else { 
      window = new JWindow(); 
      AWTUtilities.setWindowOpacity(window, 0.5f); 
     } 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^