Hy, ..Как установить прозрачный фон JDialog
как я могу установить фон прозрачным и «снять» closeoperation (отмечен красным цветом)? Я только хочу, чтобы показать карту :-)
Спасибо ..!
Hy, ..Как установить прозрачный фон JDialog
как я могу установить фон прозрачным и «снять» closeoperation (отмечен красным цветом)? Я только хочу, чтобы показать карту :-)
Спасибо ..!
yourDialog.setUndecorated(true)
должен сделать трюк для заголовка.
Для обеспечения прозрачности рамки. Вам нужно будет работать с корневой панелью с yourDialog.getRootPane().setOpaque(false)
.
, если я напишу «setUndecorated», тогда он выдает исключение: «IllegalComponentStateException: диалоговое окно можно отобразить» –
Argh, Сейчас я не в своей среде разработки. Я проверю и вернусь, когда смогу положить руки на правильный компьютер. – LudoMC
До тех пор, пока я не смогу выполнить тест, вы должны попробовать JWindow (который по умолчанию не применяется). Возможно, вам также стоит взглянуть на функциональность SplashScreen Java6. – LudoMC
Я следил за инструкциями из статьи, и это работало финнали, и это было совсем не сложно. :) Теперь у меня есть мой полупрозрачный SplashImage ans О экране, который отображает изображение PNG и уважает его (сложную) прозрачность. Просто восхитительно. Обратите внимание, что способ продолжения немного изменится в JDK 7.
Просто обратите внимание на разницу между ключевыми словами. http://download.oracle.com/javase/tutorial/uiswing/misc/trans_shaped_windows.html#6u10
Было бы хорошо, если бы
yourDialog.setUndecorated(true);
yourDialog.getRootPane().setOpaque(false);
трюк сработал, но это не ко мне. Может, я сделал что-то не так.
Я также отмечаю, что важно использовать setContentPane (Component); вместо getContentPane.add (Component);
Я счастлив, что сейчас работает! :)
Это может быть лучше, чем комментарий. Вы должны, безусловно, продвинуть исходную ссылку на статью, если она вам поможет. –
Да, это скорее скорее комментарий, чем ответ. Я довольно новичок здесь, я не очень понял, как сайт организован, извините. :) Кстати, я преуспеваю, это полупрозрачность под окнами, но у меня нет AWTUtilities под Linux, поэтому я просто не могу этого сделать. –
Хотя нет никакой проблемы с прозрачностью JDrame UNDECORATED (myJFrame.setBackground (новый цвет (0,0,0,0)), достаточно), то же самое с JDialog не работает.
я обнаружил, однако, следующая последовательность работы идеально подходит для JDialog:
myJDialog.getRootPane().setOpaque (false);
myJDialog.getContentPane().setBackground (new Color (0, 0, 0, 0));
myJDialog.setBackground (new Color (0, 0, 0, 0));
также остается, но это мое частное, скромное предложение, что все setBackground вызова для окна наполнителей (например, JFrame, JDialog) следует проверять на UnsupportedOperationException и IllegalComponentStateException.
Ты сэр только что сделал мой день :) –
Я думаю, что лучше, если я получу исключение и исправлю его. – WVrock
'getContentPane(). SetBackground' не требовалось в моем случае –
Обратите внимание, что контейнеры верхнего уровня, такие как JDialog, JFrame и JApplet, не должны быть прозрачными. В статье Sun был взломан, чтобы обеспечить прозрачность и изогнутые окна (с использованием классов com.sun), но он перестает работать. Предполагается, что Java 7 повторно вводит (в J2SE) полупрозрачные/прозрачные TLC. –
Я думаю, что это может помочь вам: http://java.sun.com/developer/technicalArticles/GUI/translucent_shaped_windows/ –