text=new JTextArea(20,20);//文本框不好意思,乱想的

解决方案 »

  1.   


    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;class myJPanel extends JPanel
    { JTextArea text;
    JButton button;
    JScrollPane scrollpane;
    {
                button=new JButton("下一个");//按纽 下一个                                                         
                text=new JTextArea(20,20);//文本框
                scrollpane=new JScrollPane(text);//滚动窗口并把文本框添加到滚动窗口中
        add(scrollpane,new GridLayout(0,2));
        add(button,new GridLayout(0,2));
    }
    }class Mywindow extends JFrame  //建立自己的窗体
    { JLabel lable_1,lable_2;
    myJPanel pan;
    Mywindow()
    { //setResizable(false);
    setSize(500,600);//窗体大小是100*100
    setVisible(true);//窗体可见
    Container contentpane=getContentPane();
    contentpane.setLayout(new GridLayout(3,0));//窗体的布局是 3行
    lable_1=new JLabel("lab");
    lable_2=new JLabel("本程序由 JAVA 编写,编写者:翁海君");
    pan=new myJPanel();
    contentpane.add(lable_1);
    contentpane.add(pan);
    contentpane.add(lable_2);
    }
    }
    public class frameTest
    { public static void main(String args[])
    { Mywindow win=new Mywindow();
            win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                    win.show();
    }
    }
      

  2.   

    1.
    add(scrollpane,new GridLayout(0,2));
    add(button,new GridLayout(0,2));
    改为:
    add(scrollpane);
    add(button);2.去掉win.pack();
      

  3.   

    请问我这个代码和你的代码有什么区别啊??          
                        addWindowListener(new  WindowAdapter()  
                           {            public  void  windowClosing(WindowEvent  e)  
                                       {            System.exit(0);  
                                       }  
                           });  
     你的
                         win.setDefaultCloseOperation                                 (JFrame.EXIT_ON_CLOSE);  
                   win.show();   我弄的窗体也不好看!!  我把他设置成 3 行,但是我觉得上面的 标签和下面的标签
    不用占这么大的地方。 应该怎么弄呢!!  谢谢啦!!
      

  4.   

    我觉得没什么区别,不过我习惯用我那个方法了。
    我不知道win.pack()是做什么的,看你注释//pack(),我就把你那个换成我的了,然后去掉win.pack了。
    你的三行的大小是一样的,所以上下两个标签看起来浪费了很大的地方。
    我建议你用这样的语句来设置布局 
    contentpane.add(lable_1,BorderLayout.NORTH);
    contentpane.add(pan,BorderLayout.CENTER);
    contentpane.add(lable_2,BorderLayout.SOUTH);
    而不用GridLayout
      

  5.   

    setResizable(false);
    setSize(100,100);//窗体大小是100*100
    setPreferredSize(100,100);  //设置窗口的缺省大小
      

  6.   

    pack()是把窗口恢复到缺省大小
      

  7.   

    pack()是把窗口恢复到缺省大小
      

  8.   

    恩,先谢谢楼上几位先。
     
     BorderLayout这个布局 的大小他自己会控制的吗??