import java.awt.*;
public class guitest2 extends Frame
{
public guitest2()
{
setTitle("ButtonTest");
Panel p=new Panel();
p.setLayout(new FlowLayout());
p.add(new Button("Yellow"));
p.add(new Button("red"));
p.setBackground(Color.blue);
add("North",p);
ovalcanvas ovalcan=new ovalcanvas();
add("South",ovalcan);
ovalcan.setSize(400,400);
}
public boolean handleEvent(Event evt)
{
if(evt.id==Event.WINDOW_DESTROY)System.exit(0);
return super.handleEvent(evt);
}
public boolean action(Event evt,Object arg)
{
if(arg.equals("Yellow"))setBackground(Color.yellow);
else if(arg.equals("red"))setBackground(Color.red);
repaint();
return true;
}
public static void main(String[] args)
{
Frame f=new guitest2();
f.resize(600,500);
f.setBackground(Color.white);
f.show();
}
}
class ovalcanvas extends Canvas
{
public void paint(Graphics g)
{
//g.drawString("ovalcanvas",100,100);
g.setColor(Color.black);
//g.drawOval(200,200,300,300);
g.drawOval(100,100,200,200);
}
}
画不出来的原因是你的中间那个面板把下面一个挤的看不见了!

解决方案 »

  1.   

    accpedu(人月神话) 可不可以说的详细一点
      

  2.   

    add(String s,Component c);中s的取值North,South,East,West,Center都有的,但是流布局管理器有一个建议,要先添加North,South,East,West的组建,剩余的留给Center。实际上你画图g.drawOval(200,200,300,300);是在画布上画的,而画布在整个frame中也有相对的位置,于是你的图便很不适合这个框架(你的框架是600*500)。
    我也是刚学,不是对否,请各位大师指点