我知道JTable通常放在JScrollPane中,但我根本不想滚动,我希望在添加行时表增长。 我已经使用NetBeans IDE 8.2来创建一个swing应用程序,它几乎可以完成我想要的表格,我已经把它放在JPanels,数据和标题中的单独面板中。
我尝试过基础知识并手工制作我需要的代码,但它根本没有显示该表。
public NewJFrame1() {
initComponents();
JTable table = new JTable();
DefaultTableModel tableModel = new DefaultTableModel();
tableModel.addColumn("Type");
tableModel.addColumn("Folder");
String[] row = {"Datum1","Datum2"};
table.setModel(tableModel);
tableModel.addRow(row);
this.getContentPane().add(table.getTableHeader());
this.getContentPane().add(table);
}
答案 0 :(得分:1)
我认为您应该将模型设置为表格
table.setModel(tableModel); //add this to your code
好的,从我看到的,你正在使用Netbeans并创建JFrame。如果从设计中插入表,则不需要在构造函数中创建另一个表。只需:
public NewJFrame() {
initComponents();
DefaultTableModel tableModel = new DefaultTableModel();
tableModel.addColumn("Type");
tableModel.addColumn("Folder");
String[] row = {"Datum1","Datum2"};
tableModel.addRow(row);
jTable1.setModel(tableModel);// where jTable1 has been created and instantiated automatically by netbeans when you draged and dropt it to your frame , from the design.
}
答案 1 :(得分:0)
Radu Soigan是对的,JTable和TableModel是需要使用setModel(tableModel)方法链接在一起的独立对象,因为表格不知道要显示的数据在哪里。对于自定义表模型也是如此,在设置模型后,请务必将其设置为JTable。