JFrame这样的框架,一旦创建,在其中就已经包含一个内容面板,一般我们在往JFrame中添加组件时,都加在了内容面板中,这个面板可以通过JFrame的成员方法getContentPane()取出来,所以如果设置JFrame的背景颜色,仍然会被内容面板盖住,不如设置内容面板的背景颜色,如果框架中还加有其他面板,内容面板的颜色也会被其他面板盖住,要注意一下面板的布局情况。
在使用JFrame.setBackground(new Color);是发现这个方法调用后并没有改变JFrame窗口的背景颜色,这体现了点JFrame和Frame的区别: JFrame要用: JFrame.getContentPane().setBackground(new Color); 来改变JFrame的背景颜色; Frame中则可以直接使用: Frame.setBackground(new Color);
JFrame透明度设置
java.awt.EventQueue.invokeLater(new Runnable() { public void run() { AAA a = new AAA(); a.setVisible(true); // com.sun.awt.AWTUtilities.setWindowShape(a, new Ellipse2D.Double(0, 0, a.getWidth(), a.getHeight())); com.sun.awt.AWTUtilities.setWindowOpacity(a, 0.80f); } });
a为JFrame 0.80F为透明度系数