在下面的代码中,为什么我会看到一个不可见的窗口?
setUndecorated()
做和在哪里使用。
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
public class UsingJLayer {
UsingJLayer()
{
JFrame jfrm=new JFrame("Picasa Viewer");
jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Dimension dim=Toolkit.getDefaultToolkit().getScreenSize();
jfrm.setSize(dim);
jfrm.setUndecorated(true);
jfrm.setBackground(new Color(0,100,0,0));
jfrm.setVisible(true);
}
public static void main(String[] args) {
//JFrame.setDefaultLookAndFeelDecorated(true);
SwingUtilities.invokeLater(new Runnable(){public void run(){new UsingJLayer();}});
}
}
其次,如果我评论jfrm.setUndecorated(true)
并改为使用JFrame.setDefaultLookAndFeelDecorated(true);
,那么我会按预期获得半透明窗口。
那么,setUndecorated()
和JFrame.setDefaultLookAndFeelDecorated(true);
是什么。我必须使用其中一个,否则抛出异常。
答案 0 :(得分:0)
在框架上调用SetUndecorated以删除标题栏/最大化按钮/等。这是一个很好的例子:http://docs.oracle.com/javase/tutorial/uiswing/misc/trans_shaped_windows.html#shaped