swing中为什么把JTextArea放在JPanel中不显示?代码如下:package pack1;import javax.swing.*;public class Test {/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stubJFrame frame=new JFrame();
frame.setLayout(null);
frame.setBounds(200, 100, 800, 500); // 窗口大小
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
JPanel panel=new JPanel();
JTextArea area=new JTextArea();
panel.add(area);
frame.add(panel);}}

解决方案 »

  1.   


    JFrame frame=new JFrame();
    //frame.setLayout(null);
    frame.setBounds(0,0, 800, 500); // 窗口大小
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JPanel panel=new JPanel();
    JTextArea area=new JTextArea(10,20);
    panel.add(area);
    frame.add(panel);
    frame.setVisible(true);
      

  2.   

    要把所有组件添加完再setVisible
      

  3.   

    frame.setLayout(null);
    这一行是没有用的,把去一行去掉就可以了。
      

  4.   

    1楼正解,也可以在最后panel.updateUI();
      

  5.   

    import javax.swing.*;public class Test {/**
    * @param args
    */
    public static void main(String[] args) {
    // TODO Auto-generated method stubJFrame frame=new JFrame();
    //frame.setLayout(null);
    frame.setBounds(200, 100, 800, 500); // 窗口大小
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JPanel panel=new JPanel();
    JTextArea area=new JTextArea("123456");
    panel.add(area);
    frame.add(panel);
    frame.setVisible(true);
    }}
    把setvisible(true)放到最后,去掉无用的语句:frame.setLayout(null),作为测试可以在JTextLArea里面加些字符如:123456;就可以看到显示了;
      

  6.   

    我个人理解 frame.setLayout(null);这句话是想让panel组件的setbounds起作用才会用到得,你这个例子用不上