为什么JTable没有显示?

时间:2014-10-06 12:05:55

标签: java swing layout jtable jpanel

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

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

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);
}

1 个答案:

答案 0 :(得分:1)

它需要数据和/或数据模型才能让您看到有趣的内容。

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

p2.add(new JScrollPane(table));

你至少可以看到组件的轮廓。