代码如下:是要通过定义的一个子类MyWindowDemo来创建JFrame窗口。并控制窗口的大小和颜色。
             程序很简单,编译也没有出错,可是就是执行后看不到窗口的颜色有改变。
             各位大虾帮我找找root cause啊。这可是全国使用的自考教材上的例子阿。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Example5_2
{
public  static MyWindowDemo mw1;
public  static MyWindowDemo mw2;
public static void main(String args[])
{
  JButton butt1=new JButton("我是一个按钮");
  String name1="我的第一个窗口";
  String name2="我的第二个窗口";
  mw1=new MyWindowDemo(name1,butt1,Color.RED,350,450);
  mw1.setVisible(true);
  JButton butt2=new JButton("我是另一个按钮");
  mw2=new MyWindowDemo(name2,butt2,Color.BLUE,300,400);
  mw2.setVisible(true);
}
}
class MyWindowDemo extends JFrame
{
public MyWindowDemo(String name,JButton Button,Color c,int w,int h)
{
   super();
   setTitle(name);
   setSize(w,h);
   Container contentPane=getContentPane();
   contentPane.add(Button);
   contentPane.setBackground(c);
}
}

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【puti5shu】截止到2008-07-30 00:08:57的历史汇总数据(不包括此帖):
    发帖的总数量:1                        发帖的总分数:0                        每贴平均分数:0                        
    回帖的总数量:0                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:0                        结贴的总分数:0                        
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:1                        未结的总分数:0                        
    结贴的百分比:0.00  %               结分的百分比:---------------------
    无满意结贴率:---------------------无满意结分率:---------------------
    如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html

    取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=puti5shu
      

  2.   

    是BUTTON把整个页面给覆盖了,所以看不到页面的颜色,设一下BUTTON的位置就好了
    代码如下:import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;public class Example5_2 {
    public static MyWindowDemo mw1;
    public static MyWindowDemo mw2; public static void main(String args[]) {
    JButton butt1 = new JButton("the first button");
    String name1 = "the first frame";
    String name2 = "the second frame";
    mw1 = new MyWindowDemo(name1, butt1, Color.RED, 350, 450);
    mw1.setVisible(true);
    JButton butt2 = new JButton("the other button");
    mw2 = new MyWindowDemo(name2, butt2, Color.BLUE, 300, 400);
    mw2.setVisible(true);
    }
    }class MyWindowDemo extends JFrame {
    public MyWindowDemo(String name, JButton Button, Color c, int w, int h) {
    super();
    setTitle(name);
    setSize(w, h);
    Container contentPane = getContentPane();
    contentPane.add(Button,BorderLayout.NORTH);    //添加这一就设置了BUTTON的位置
    contentPane.setBackground(c);
    }
    }
      

  3.   

    谢谢大家,教材编者夏宽理教授给我答复如下,和lubin2007网友有异曲同工之妙:
    import javax.swing.*; 
    import java.awt.*; 
    import java.awt.event.*; public class Example5_2 { 
    public static MyWindowDemo mw1; 
    public static MyWindowDemo mw2; public static void main(String args[]) { 
    JButton butt1 = new JButton("the first button"); 
    String name1 = "the first frame"; 
    String name2 = "the second frame"; 
    mw1 = new MyWindowDemo(name1, butt1, Color.RED, 350, 450); 
    mw1.setVisible(true); 
    JButton butt2 = new JButton("the other button"); 
    mw2 = new MyWindowDemo(name2, butt2, Color.BLUE, 300, 400); 
    mw2.setVisible(true); 

    } class MyWindowDemo extends JFrame { 
    public MyWindowDemo(String name, JButton Button, Color c, int w, int h) { 
    super(); 
    setTitle(name); 
    setSize(w, h); 
    Container contentPane = getContentPane(); 
    contentPane.setLayout(new FlowLayout());// 加上了这一行,也起到了同样的作用。
    contentPane.add(Button); 
      contentPane.setBackground(c); 

    }