У меня есть подкласс JFrame (он содержит JButton, Title и Jpanel), и я добавил JPanel к нему. Jpanel занимает центральную часть границы. Я хочу сделать JPanel прозрачным (он должен видеть через окно Frame).Как добавить непрозрачные компоненты в прозрачный JFrame в java 1.5?
Как я делаю это для Java 1.5, я использовал JFrame.setOpacity (0.0f), чтобы установить прозрачность Jframe. Делая это, все компоненты JFrame (т.е. кнопка, Title ahd jPanel) используют тот же альфа-уровень. Но я хочу, чтобы только JPanel был прозрачным.
Я экспериментировал с JLayeredPane, изменив Z-порядок с тем же результатом.
Я открыт для использования внешних библиотек, таких как JNA (JNA windowsUtil также выполняет то же самое, что и метод setOpacity()) и использует классы java7 или java6 в качестве внешних библиотек для моего приложения.
Я даже прошел через некоторые ранее заданные вопросы без помощи:
Opaque components on transparent Java windows
Java: Transparent Windows with non-transparent components?
Re-paint on translucent frame/panel/component.
Если вы используете утилиты JNA, вы * можете * получить желаемый эффект, установив альфа-маску в окне с указанием желаемого уровня непрозрачности, а затем поместите свои непрозрачные биты в тяжеловесный компонент в оригинале окно. Работает ли это в значительной степени, зависит от того, как прозрачность каскадирует иерархию окон на данной платформе. – technomage
BTW, утилиты JNA обеспечивают установку глобального альфа-окна, битовой маски окна и альфа-маски. Последнее, скорее всего, будет работать на то, что вы пытаетесь сделать. Вы вряд ли получите код java [67] для работы с более ранней версией JVM. – technomage