Не доставляет ли пример полупрозрачного окна в учебных пособиях по Java проблемы тем, кто играет с jdk7?

Вот пример .

Если вы создадите и запустите TranslucentWindow , скажем, в среде IDE NetBeans 7.0, которая поддерживает jdk7, вы получите следующее исключение:

Exception in thread "AWT-EventQueue-0" java.awt.IllegalComponentStateException: The frame is decorated
    at java.awt.Frame.setOpacity(Frame.java:960)
    at main.TranslucentWindow.(TranslucentWindow.java:23)
    at main.TranslucentWindow$1.run(TranslucentWindow.java:47)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
    at java.awt.EventQueue.access$000(EventQueue.java:101)
    at java.awt.EventQueue$3.run(EventQueue.java:666)
    at java.awt.EventQueue$3.run(EventQueue.java:664)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
BUILD SUCCESSFUL (total time: 1 second)

Согласно этой трассировке стека, ошибочная строка будет tw.setOpacity (0.55f) . Но, как указывает ошибка, если вы вызовете setUndecorated (true) в кадре, то исключение не будет и будет создано полупрозрачное окно, хотя и без каких-либо украшений (что очень неудобно). Это нормально? Разве этот код не должен работать сразу "из коробки"? Я что-то не замечаю?

РЕДАКТИРОВАТЬ

Почему их полупрозрачное окно кажется украшенным, или это пользовательский рендеринг?

Что это ...

enter image description here

Что это должно быть ...

enter image description here

9
задан mKorbel 26 August 2013 в 07:14
поделиться