在没有内容时表格这样显示
------------------------------------------------
|    A    |    B    |    C   |   D   |    E    |
------------------------------------------------
|            没有你要找的记录数据                 |
------------------------------------------------
当数据库有数据时是这样显示的
------------------------------------------------
|    A    |    B    |    C   |   D   |    E    |
------------------------------------------------
|   12    |    32    |    58   |   60  |    22   |
------------------------------------------------
请问用JTable怎么实现啊

解决方案 »

  1.   

    没数据时一定要显示那行字吗?
    这好像不行唉.
    换个变通的办法行么?
    比如出个DIAGLOG说没找到记录什么的?
      

  2.   

    public class TestEnhancedTable extends JFrame
    {
    private static final String[] columns =
    {
    "One", "Two", "Three"
    }; public TestEnhancedTable()
    {
    JTable table = new JTable();
    final DefaultTableModel model = new DefaultTableModel();
    model.setColumnIdentifiers(columns);
    table.setModel(model); JScrollPane scrollPane = new JScrollPane();
    final EViewport viewport = new EViewport(table);
    viewport.setView(table);
    getContentPane().add(scrollPane, BorderLayout.CENTER);
    scrollPane.setViewport(viewport); JButton add = new JButton("Add");
    JPanel pane = new JPanel();
    pane.add(add);
    getContentPane().add(pane, BorderLayout.NORTH);
    add.addActionListener(new ActionListener()
    {
    public void actionPerformed(ActionEvent e)
    {
    model.addRow(new Object[]
    {
    "A", "B", "C"
    });
    viewport.repaint();
    }
    }); setDefaultCloseOperation(EXIT_ON_CLOSE);
    setSize(400, 300);
    setVisible(true);
    } public static void main(String[] args)
    {
    new TestEnhancedTable();
    } static class EViewport extends JViewport
    {
    private JTable table; public EViewport(JTable table)
    {
    super();
    this.table = table;
    } public void paintComponent(Graphics g)
    {
    super.paintComponent(g);
    if (table != null && table.getModel() != null && table.getModel().getRowCount() == 0)
    {
    g.setColor(Color.black);
    g.drawString("没有你要找的记录数据", getWidth() / 2, getHeight() / 2);
    }
    }
    }
    }
      

  3.   


    dawn023 ,你好,我的MODEL是下面的,用上你的好像不能正常显示了import javax.swing.table.*;public class MyTableModel extends DefaultTableModel {
        /**
     * 
     */
    private static final long serialVersionUID = 3574240369287450423L;
    private static final ColumnContext[] columnArray = {
            new ColumnContext("",     String.class, false),
            new ColumnContext("Account",    String.class,  false),
            new ColumnContext("Date", String.class,  false),
            new ColumnContext("Big", String.class,  false),
            new ColumnContext("Small",  String.class,  false),
            new ColumnContext("A1", String.class,  false),
            new ColumnContext("C",  String.class,  false),
            new ColumnContext("A", String.class,  false),
            new ColumnContext("HC",    String.class,  false),
            new ColumnContext("HB", String.class,  false),
            new ColumnContext("HA",    String.class,  false),
            
        };
        public  int number = 1;
        public void addGameBean(GameBean t) {
            Object[] obj = {String.valueOf(number), t.getAccount(), t.getDate(), t.getBig(), t.getSmall(), t.getA1(), t.getC(), t.getA(), t.getHc(), t.getHb(), t.getHa()};
            super.addRow(obj);
            number++;
        }
        /*public void addGameBean(String number, GameBean t) {
            Object[] obj = {number, t.getAccount(), t.getDate(), t.getBig(), t.getSmall(), t.getA1(), t.getC(), t.getA(), t.getHc(), t.getHb(), t.getHa()};
            super.addRow(obj);
            //number++;
        }*/
        public void addGameBean() {
            Object[] obj = {"", "", "", "", "没有你要的记录"};
            super.addRow(obj);
            
            //number++;
        }
        public void removeAll(java.util.List list){
         for(int i=1; i<list.size(); i++)
         super.removeRow(i+1);
        }
        public void removeAll(int list){
         for(int i=0; i<=list; i++)
         super.removeRow(i);
        }
        
        public boolean isCellEditable(int row, int col) {
            return columnArray[col].isEditable;
        }
        public Class<?> getColumnClass(int modelIndex) {
            return columnArray[modelIndex].columnClass;
        }
        public int getColumnCount() {
            return columnArray.length;
        }
        public String getColumnName(int modelIndex) {
            return columnArray[modelIndex].columnName;
        }
        private static class ColumnContext {
            public final String  columnName;
            public final Class   columnClass;
            public final boolean isEditable;
            public ColumnContext(String columnName, Class columnClass, boolean isEditable) {
                this.columnName = columnName;
                this.columnClass = columnClass;
                this.isEditable = isEditable;
            }
        }
    }
    class GameBean{
        private String account, big, small, a1, c, a, hc, hb, ha, date;
        public GameBean(){
        
        }
        public GameBean(String account, String date, String big, String small, String a1, String c, String a, String hc, String hb, String ha) {
            this.account = account;
            this.date = date;
            this.big = big;
            this.small = small;
            this.a1 = a1;
            this.c = c; 
            this.a = a;
            this.hc = hc;
            this.hb = hb;
            this.ha =ha;
            
        }
    public String getA() {
    return a;
    }
    public void setA(String a) {
    this.a = a;
    }
    public String getA1() {
    return a1;
    }
    public void setA1(String a1) {
    this.a1 = a1;
    }
    public String getAccount() {
    return account;
    }
    public void setAccount(String account) {
    this.account = account;
    }
    public String getBig() {
    return big;
    }
    public void setBig(String big) {
    this.big = big;
    }
    public String getC() {
    return c;
    }
    public void setC(String c) {
    this.c = c;
    }
    public String getHa() {
    return ha;
    }
    public void setHa(String ha) {
    this.ha = ha;
    }
    public String getHb() {
    return hb;
    }
    public void setHb(String hb) {
    this.hb = hb;
    }
    public String getHc() {
    return hc;
    }
    public void setHc(String hc) {
    this.hc = hc;
    }
    public String getSmall() {
    return small;
    }
    public void setSmall(String small) {
    this.small = small;
    }
    public String getDate() {
    return date;
    }
    public void setDate(String date) {
    this.date = date;
    }
     
    }
      

  4.   

    我试了一下,可以正常显示的。再说我没有修改JTable的任何代码,我只是修改了JViewport而已,和你Model应该没关系的。
      

  5.   

    谢谢你可以了能在问你个问题吗“我要改变jinternalframe的标题栏怎么修改啊”