Hy,..
how can i set the background transparent and "remove" the closeoperation (marked red) ? I only want to show the card :-)
Thanks..!
If you really want to center a JDialog on screen, you can use code like this: // center a jdialog on screen JDialog d = new JDialog(); d. setSize(400, 300); d. setLocationRelativeTo(null); d.
Class JDialog. The main class for creating a dialog window. You can use this class to create a custom dialog, or invoke the many class methods in JOptionPane to create a variety of standard dialogs. For information about creating dialogs, see The Java Tutorial section How to Make Dialogs.
All you need to do is to create a custom subclass of JDialog , define an ActionListener for closing the JDialog , and register the Escape keystroke to call the action listener.
Although there is no problem with UNDECORATED JFrame transparency (myJFrame.setBackground (new Color (0,0,0,0)); is pretty enough), the same with JDialog is not working.
I discovered, however, the following sequence works perfect for JDialog:
myJDialog.getRootPane ().setOpaque (false);
myJDialog.getContentPane ().setBackground (new Color (0, 0, 0, 0));
myJDialog.setBackground (new Color (0, 0, 0, 0));
A also remain, but it is my PRIVATE, humble suggestion, that all setBackground call for Window extenders (e.g. JFrame, JDialog) should be tried against UnsupportedOperationException and IllegalComponentStateException.
yourDialog.setUndecorated(true)
should do the trick for the title bar.
For having the Frame transparent. You'll have to work on the root panel with yourDialog.getRootPane().setOpaque(false)
on it.
I followed the instructions from the article and it worked finnaly AND it wasn't difficult at all. :) I now have my translucent SplashImage ans About screen which displays a PNG image and respect its (complex) transparency. Just awesome. Note that the method to proceed will change a little bit in JDK 7.
Just notice the difference between keywords. http://download.oracle.com/javase/tutorial/uiswing/misc/trans_shaped_windows.html#6u10
It would have been nice if the
yourDialog.setUndecorated(true);
yourDialog.getRootPane().setOpaque(false);
trick worked but it didn't to me. Maybe I did something wrong.
I also note it is important to use setContentPane(Component); instead of getContentPane.add(Component);
I'm happy it works now ! :)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With