回 帖 发 新 帖 刷新版面

主题:[讨论]JTable里面的一个难题

搞了几天几夜都不知道这段代码究竟有什么问题.
JTable显示不出来.


package swing;

import java.awt.*;

import javax.swing.*;
import java.awt.BorderLayout;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumnModel;

public class TableDemo extends JFrame {
    BorderLayout borderLayout1 = new BorderLayout();
    JScrollPane jScrollPane1 = new JScrollPane();
    JTable jTable1 = new JTable();
    JComboBox cbo = new JComboBox();
    DefaultTableModel tmodel = new DefaultTableModel();

    public TableDemo() {
        try {
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
    }

    private void jbInit() throws Exception {
        getContentPane().setLayout(borderLayout1);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER);
        jScrollPane1.getViewport().add(jTable1);
        cbo.addItem("Java");
        cbo.addItem("Oracle");
        cbo.addItem("C#");
        cbo.addItem("Linux");
        tmodel.addColumn("列A");
        tmodel.addColumn("列B");
        tmodel.addRow(new Object[] {"教育", ""});
        DefaultCellEditor ce = new DefaultCellEditor(cbo);
        TableColumnModel cm = jTable1.getColumnModel();
        cm.getColumn(1).setCellEditor(ce); //此处的1为每一行的第二列,列号从0开始;
        jTable1.setModel(tmodel);
    }

    public static void main(String[] args) {
        TableDemo tabledemo = new TableDemo();
        tabledemo.setTitle("技能設置");
        tabledemo.setSize(400, 300);
        tabledemo.setVisible(true);
    }
}

回复列表 (共4个回复)

沙发

暈...
這么大個論壇,沒有一個人會.

板凳


Object[ ][ ] cells =
          {
          {"Java",new Integer(01),new Integer(400)},
          {"Oracle",new Integer(02),new Integer(500)},
          {"C#",new Integer(03),new Integer(700)},
          };
          String[] colnames={"课程名称","课程编号","学费(元)"};

你在前面加上这句就可以了  
如果自己不清楚可以加QQ372502603
一起学习

3 楼

你语句的顺序错了
调用jTable1.getColumnModel时,还没setModel

那时的jTable是一个空的table根本没有所谓的ColumnModel

只要把jTable1.setModel(tmodel);一行移到TableColumnModel cm = jTable1.getColumnModel();之前即可解决问题

顺带建议一下。。学习一下代码规范

4 楼


他上面根本就没有表头
你懂什么

我来回复

您尚未登录,请登录后再回复。点此登录或注册