import java.awt.*;
import java.awt.event.*;
public class bug extends Frame {    /** Creates new bug */
    public bug() {
     ScrollPane pane=new ScrollPane();
     Panel p=new Panel();
     p.setLayout(new GridLayout(0,1,0,0));
        for (int i=0;i<2000;i++){
            p.add(new Button("Button "+i));
        }
        pack();
        pane.add(p);
         add(pane);
        addWindowListener(new WindowAdapter(){
            public void windowClosing(WindowEvent e){
                dispose();
                System.exit(0);
            }
        });
    }
    public static void main(String []argv){
        bug b=new bug();
        b.setVisible(true);
    }}
 在JDK 1.3.0_02在没有报异常,但无法正确显示,我加入了2000个button, 但只显示了1400多个

解决方案 »

  1.   

    但我将Layout设为GridBagLayout 时;GridBagConstraintes gbc;
    gbc.fill=BOTH;gbc.weightx=1;gbc.weighty=0;gbc.gridx=0;
    gbc.gridy=i;
    出现异常::如下
    java.lang.ArrayIndexOutOfBoundException:
    at java.awt.GridBagLayout.GetLayoutInfo()
    at java.awt.GridBagLayout.preferredLayoutSize()
    at.java.awt.Container.preferredSize();...............................
      

  2.   

    //我想不是bug只是加载button时的问题.
    //希望有人能有更详细的解释.
    import java.awt.*;
    import java.awt.event.*;public class bug extends Frame {    /** Creates new bug */
        public bug() {
            ScrollPane pane=new ScrollPane();
            Panel p=new Panel();
            p.setLayout(new GridLayout(0,1,0,0));
            for (int i=0;i<2000;i++){
                p.add(new Button("Button "+i));
                //加入这样一行.
                System.out.println("Button "+i);
            }
            pack();
            pane.add(p);
            add(pane);
            addWindowListener(new WindowAdapter(){
                public void windowClosing(WindowEvent e){
                    dispose();
                    System.exit(0);
                }
            });
        }
        public static void main(String []argv){
            bug b=new bug();
            b.setVisible(true);
        }}
      

  3.   

    是的,不是由于Button的问题,加载大多数的Component时都有这种问题,
    我猜想是由于在Container控制的面积,而不是控制的Component的数目上有一个限制,导致
    出错或是异常