本意是一个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为可见,缺省为不可见
}
}
----------------解决方案--------------------------------------------------------
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默认的管理器停掉..谢谢!
----------------解决方案--------------------------------------------------------