请教一个checkbox的问题
class A extends Frame{
Checkbox checkbox[];
A()
{
// add(checkbox);
checkbox=new Checkbox[4];
for(int i=0;i<=3;i++)
{
checkbox[i]=new Checkbox("",false);
add(checkbox[i]);
}
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
read();
setSize(200,100);
setVisible(true);
}
public void read()
{
for(int i=0;i<=3;i++)
{
checkbox[i].setLabel("hello");
}
}
}
class B
{
public static void main(String args[])
{
new A();
}
}
程序中定义了四个checkbox,为什么用循环只显示了一个呢?错在哪里
搜索更多相关的解决方案:
checkbox
----------------解决方案--------------------------------------------------------
原来是Frame问题,他默认的布局是Borderlayout,没指定位置只能加一个组件进去
----------------解决方案--------------------------------------------------------
是因为这样添加的话会把原来的checkbox隐藏了。所以应该加上layout
import java.awt.*;
import java.awt.event.*;
class A extends Frame
{
Checkbox checkbox[];
A()
{
// add(checkbox);
checkbox=new Checkbox[4];
for(int i=0;i<=3;i++)
{
checkbox[i]=new Checkbox("",false);
add(checkbox[i]);
}
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
this.setLayout(new FlowLayout()); //这样就可以了
read();
setSize(200,100);
setVisible(true);
}
public void read()
{
for(int i=0;i<=3;i++)
{
checkbox[i].setLabel("hello");
}
}
}
class B
{
public static void main(String args[])
{
new A();
}
}
----------------解决方案--------------------------------------------------------
是的。。。之前没有考虑到
----------------解决方案--------------------------------------------------------
谢谢,我也学习了!
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------