为什么这个java程序创建出来的窗口颜色显示不出来?
package窗口;importjava.awt.*;importjavax.swing.*;publicclassWindow2extendsJFrame{privat...
package 窗口;
import java.awt.*;
import javax.swing.*;
public class Window2 extends JFrame{
private Container cp;
private JButton jb;
public Window2(){
setSize(300,200);
setLocation(100,100);
setLayout(null);
setBackground(Color.lightGray );
setForeground(Color.orange );
cp=this.getContentPane();
init();
}
public void init(){
jb=new JButton("单击我");
jb.setBounds(100,80,200,40);
jb.setForeground(Color.CYAN );
jb.setFont(new Font("黑体",Font.BOLD ,20));
cp.add(jb);
}
public static void main(String[] args){
new Window2().setVisible(true);
}
} 展开
import java.awt.*;
import javax.swing.*;
public class Window2 extends JFrame{
private Container cp;
private JButton jb;
public Window2(){
setSize(300,200);
setLocation(100,100);
setLayout(null);
setBackground(Color.lightGray );
setForeground(Color.orange );
cp=this.getContentPane();
init();
}
public void init(){
jb=new JButton("单击我");
jb.setBounds(100,80,200,40);
jb.setForeground(Color.CYAN );
jb.setFont(new Font("黑体",Font.BOLD ,20));
cp.add(jb);
}
public static void main(String[] args){
new Window2().setVisible(true);
}
} 展开
2个回答
展开全部
更多追问追答
追问
你好。我想问下这句cp=this.getContentPane();生成内容面板之后背景颜色没加进去吗?
追答
setBackground(Color.lightGray );这句话把颜色给了RootPane和LayeredPane。
而ContentPane这一层在上面,完全挡住了底下的两层。
所以你后面的cp=this.getContentPane();跟RootPane和LayeredPane没有啥关系。
代码片段,用于测试输出颜色
setBackground(Color.RED);//红色的rgb比较好认r=255 g=0 b=0
setForeground(Color.orange);
cp = this.getContentPane();
//cp.setBackground(Color.BLUE);
init();
System.out.println("RootPane的颜色\t"+getRootPane().getBackground());//255 0 0
System.out.println("LayeredPane的颜色\t"+getLayeredPane().getBackground());//255 0 0
System.out.println("ContentPane的颜色\t"+getContentPane().getBackground());
System.out.println("GlassPane的颜色\t"+getGlassPane().getBackground());
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询