当前位置: 代码迷 >> Java相关 >> 关于AWT一个极简单的问题..
  详细解决方案

关于AWT一个极简单的问题..

热度:267   发布时间:2006-08-05 16:00:53.0
关于AWT一个极简单的问题..

本意是一个200长宽的红的方块Frame里面有一个100长宽的绿的方块

帮忙看下..现在的情况是只有绿的没红的...


import java.awt.*;

public class MyFrame extends Frame
{

public MyFrame (String str)
{
super(str); //调用父类的构造方法
}

public static void main(String args[ ])
{
MyFrame fr = new MyFrame("Hello Out There!"); //构造方法
Panel pan = new Panel();

fr.setSize(200,200);//设置Frame的大小,缺省为(0,0)
fr.setBackground(Color.red);//设置Frame的背景,缺省为红色
pan.setSize(100,100);
pan.setBackground(Color.GREEN);
fr.add(pan);
fr.setVisible(true);//设置Frame为可见,缺省为不可见
}

}

搜索更多相关的解决方案: super  

----------------解决方案--------------------------------------------------------


public class MyFrame extends Frame
{

public MyFrame (String str)
{
super(str); //调用父类的构造方法
}

public static void main(String args[ ])
{
MyFrame fr = new MyFrame("Hello Out There!"); //构造方法
Panel pan = new Panel();

fr.setSize(200,200);//设置Frame的大小,缺省为(0,0)
fr.setBackground(Color.red);//设置Frame的背景,缺省为红色
pan.setSize(100,100);
fr.setLayout(null);//这个就可以了,
pan.setBackground(Color.GREEN);
fr.add(pan);
fr.setVisible(true);//设置Frame为可见,缺省为不可见
}
}

[此贴子已经被作者于2006-8-5 17:27:39编辑过]


----------------解决方案--------------------------------------------------------
问题出在Frame的默认布局管理器Borderlayout上。当拉伸容器的时候,各个组件的相对位置不变。而中间的组件会有大小变化。边上的位置只有单个的宽度或高度改变。如果某些区域没有组件,则有一个原则“边上没有中间补,边上有中间空则空。” 所以在使用Borderlayout布局管理器的时候要指定确切的位置。不能正常显示红色区域问题应该出在这两个原则上。
----------------解决方案--------------------------------------------------------

精典..明了..谢过......

原来是把Frame默认的管理器停掉..谢谢!


----------------解决方案--------------------------------------------------------
  相关解决方案