在JPanel中创建JTable并添加行

Alb*_*ola 3 java swing jtable

在我的程序中,我用dinamically创建了一个包含JPanel的JFrame jp.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;
Run Code Online (Sandbox Code Playgroud)

这是我的代码.当我按下R键盘时,会出现带有JPanel的JFrame,但表格没有(图片).我能做什么?

Mic*_*tha 8

首先,您没有在表中添加列名.

改变这一点

DefaultTableModel tm = (DefaultTableModel) table.getModel();
tm.addRow(new Object[] {"#","Player","Score","Date"});
Run Code Online (Sandbox Code Playgroud)

编辑

 DefaultTableModel tm = new DefaultTableModel(new Object[] {"#","Player","Score","Date"},0);
 table.setModel(tm);
Run Code Online (Sandbox Code Playgroud)

并添加行

tm.addRow(new Object[]{1,"XXX","99","2013-06-29"});
Run Code Online (Sandbox Code Playgroud)