Java 为什么JTable没有显示?

Java 为什么JTable没有显示?,java,swing,layout,jtable,jpanel,Java,Swing,Layout,Jtable,Jpanel,我有这段代码(是的,我是新手),但JTable没有显示。 在创建面板之前,我可以看到它(一个洋红色的盒子,因为我还没有制作数据模型) 但在添加面板后,它就消失了。谁能告诉我为什么?。提前谢谢 public Ost() { super(); JTable table; OstBridge bridge; JButton btn; JPanel p1=new JPanel(new FlowLayout()); JPanel p2=new JPanel(

我有这段代码(是的,我是新手),但JTable没有显示。 在创建面板之前,我可以看到它(一个洋红色的盒子,因为我还没有制作数据模型)

但在添加面板后,它就消失了。谁能告诉我为什么?。提前谢谢

public Ost() {
    super();
    JTable table;
    OstBridge bridge;
    JButton btn;
    JPanel p1=new JPanel(new FlowLayout());
    JPanel p2=new JPanel(new FlowLayout());
    Container cp=getContentPane();
    cp.setLayout(new BoxLayout(cp,BoxLayout.Y_AXIS));




    p1.setBorder(BorderFactory.createTitledBorder("Panel 1"));
    p2.setBorder(BorderFactory.createTitledBorder("Panel 2"));
    this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
    this.setSize(320, 240);
    this.setTitle("OST - Downloader");
    //this.setLayout(new FlowLayout());

    cp.add(p1);
    cp.add(p2);

    table=new JTable();
    table.setBackground(new Color(0xFF00FF));
    table.setSize(100, 100);
    table.setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));
    p2.add(table);

    bridge=new OstBridge();

    btn=new JButton("Prueba");
    btn.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub
            System.out.println("Action event");
            System.out.println(e);
            System.out.println(bridge);
            new Ost();

        }
    });

    p1.add(btn);
    p1.setVisible(true);
    this.pack();

    this.setVisible(true);
}

它需要数据和/或数据模型才能让您看到有趣的东西

如果在JScrollPane中添加表,如下所示:

p2.add(new JScrollPane(table));
您至少可以看到组件的轮廓