public class frame extends JFrame{
    JTextArea text=new JTextArea("",5,10);    
    public frame()
    {
        JScrollPane sc=new JScrollPane(text);
        this.setLayout(null);
        JPanel panel=new JPanel();
        panel.add(sc);
        text1.setBounds(10, 10, 200, 200);
        this.add(panel);
        this.setSize(400, 400);
        this.setVisible(true);
          }
}这样编译后连textarea都没有
如果把this.setLayout(null);去掉的话就可以了!
哪位高手能告诉下我怎么回事!如果我非得加上this.setLayout(null);该怎么解决?

解决方案 »

  1.   

    布局管理器设成null的话,就需要你手动设置x,y的位置。 
    如果不是null,编译器会帮你自动布局的。 并且注意不要越界
      

  2.   

    JTextArea text=new JTextArea("",5,10);
    text1.setBounds(10, 10, 200, 200); 
    JTextArea都沒顯示出來,而且這樣明顯編譯都不會通過的……
      

  3.   

    上面的那个程序中
    text1.setBounds(10, 10, 200, 200); 多了个1纯属我的笔误
    继续啊,大大帮我解决下问题,
    被它弄了2天了!
      

  4.   

    public class Test extends JFrame {
    JTextArea text = new JTextArea("", 10, 10); public Test() {
    JScrollPane sc = new JScrollPane(text,JScrollPane.VERTICAL_SCROLLBAR_NEVER,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    Container cp = getContentPane();
    JFrame frame = new JFrame();
    this.setLayout(null);
    JPanel panel = new JPanel();
    panel.add(sc);
    frame.setBounds(10, 10, 200, 200);
    frame.add(panel);
    frame.setSize(400, 400);
    frame.setVisible(true);
    }
      

  5.   

    非常感谢junjun1984
    知道怎么改变大小吗?
    现在只能通过设置行和列来改变大小了.
    知道怎么任意改变大小吗?setSize()我用了,没反映
      

  6.   

    晕!
    原来你新弄了个Frame
    这样就改变我意思了!这样还不回到原来地方了,布局不是NULL了.不能实现自己改变大小和位置了
      

  7.   

    JTextArea 的大小?
    setColumns()
    setRows()
      

  8.   

    不行哦!
    你新弄了个JFRAME
    它的布局不是NULL,这样就不能自己改变位置了!
      

  9.   

    既然你不要Frame那就去掉他咯...
    public class frame extends JFrame {
    JTextArea text = new JTextArea("", 10, 10); public frame() {
    text.setColumns(15);
    text.setRows(12);

    JScrollPane sc = new JScrollPane(text, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    Container cp = getContentPane();
    this.setLayout(null);
    JPanel panel = new JPanel();
    panel.add(sc);
    panel.setBounds(10, 10, 200, 250);
    this.add(panel);
    this.setSize(400, 400);
    this.setVisible(true);
    this.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
    }
    }
    可以改變JTextArea的大小的呀。
      

  10.   

    還有 this.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
    這句一定要加哦,不然 你運行個10次 然后在看看進程管理...
      

  11.   

    text.setColumns(15);
    text.setRows(12);
    你用的是这个改变大小撒!
    我想的是随意的大小
    我现在做的东西是要能随意改变大小的.
    用text.setColumns(15);
    text.setRows(12);
    改变大小感觉有点笨拙
      

  12.   

    額..你剛說不能改變大小呀。原來你要隨意改大小。那自己重寫下JTextArea。最能滿足自己的要求了。
      

  13.   

    如果不把textare添加到JScrollPane里就可以随意改变大小了.
    可一加进去就不行了!
    问题肯定不只是出在textarea里面.一定跟textarea,jscrollpane和布局有关!
    就是因为这个不是很透彻所以一直不明白为什么!
      

  14.   

            原因在于
         public class frame extends JFrame{ 
        JTextArea text=new JTextArea("",5,10);    
        public frame() 
        { 
            JScrollPane sc=new JScrollPane(text); 
            this.setLayout(null); 
            JPanel panel=new JPanel(); 
            panel.add(sc); 
            text1.setBounds(10, 10, 200, 200); 
            this.add(panel); 
            this.setSize(400, 400); 
            this.setVisible(true); 
              } 
         }         界面大小还没有设定是不可以设置组件的位置和大小的,可以使用如下:
            JScrollPane sc = new JScrollPane(text);
            JPanel panel = new JPanel();
            panel.add(sc,new Rectangle(10, 10, 200, 200));
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.setContentPane(panel);
            this.setSize(400, 400);
            this.setVisible(true);