在JPanel中创建JTable并添加行

3

在我的程序中,我动态创建了一个包含名为jp的JPanel的JFrame。jp还包含一个JTable,我想用一些行来填充它。

case KeyEvent.VK_R:
    JFrame frame = new JFrame("Snake v2.0 - Rankings");
    JPanel jp = new JPanel();
    jp.setPreferredSize(new Dimension(300,300));

    JTable table = new JTable();
    JScrollPane tableContainer = new JScrollPane(table);
    jp.add(tableContainer, BorderLayout.CENTER);
    DefaultTableModel tm = (DefaultTableModel) table.getModel();
    tm.addRow(new Object[] {"#","Player","Score","Date"});

    frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
    frame.setLocationRelativeTo(null);
    frame.setResizable(false);
    frame.getContentPane().add(jp);
    frame.pack();
    frame.setVisible(true); 
break;

这是我的代码。当我按下键盘上的 R 键时,带有该 JPanel 的 JFrame 出现,但表格不出现(图片)。我该怎么办?
2个回答

8
首先,您还没有将列名添加到表格中。
请修改如下:
DefaultTableModel tm = (DefaultTableModel) table.getModel();
tm.addRow(new Object[] {"#","Player","Score","Date"});

非常抱歉,我无法处理格式化的内容。
 DefaultTableModel tm = new DefaultTableModel(new Object[] {"#","Player","Score","Date"},0);
 table.setModel(tm);

添加行
tm.addRow(new Object[]{1,"XXX","99","2013-06-29"});

1
我自己解决了 ;) - Alberto Miola

3

//在jpanel中设置表格和滚动条

DefaultTableModel table_model = new DefaultTableModel(addressData, new String[]{"First Name",    "Surname", "Home Number", "Mobile Number", "Address", "Postcode"});
JTable table = new JTable(this.table_model);
table.setBounds(130, 40, 200, 200);
jp.add(new JScrollPane(table, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接