如何向一个JTabel里输入数组的数 ?

解决方案 »

  1.   

    刚开始构建可以用 String[][],String[]
    之后想添加一条,只能吧数组中的数拿出来,一个一个加了
      

  2.   

    你使用DefaultDataModel就可以呀
    如定义一个数组String[] a = {"a","b","c"};然后再定义DefaultDataModel dm = new DefaultDataModel(a);JTable jt = new JTable(dm);随手写的,可能有不对的地方,没查API,应该差不多了吧!
      

  3.   

    你可以将你的数组里的数据存入到vector中,然后创建jtable的时候用 用这个new JTable(vector,vector);这个构造方法就可以了
      

  4.   

    使用DefaultDataMode类,
    定义一个数组String [][]num={{"1","2"},{"12","12"}...};
    在NEW一个DefaultDataModel ddm = new DefaultDataModel(num); 
    JTable jtable=new JTable(ddm);还是查查API吧!
      

  5.   

    //给你个完整的代码,自己对照jdk api慢慢研究吧,事先说明代码不是我写的,我也不会JAVA,省得人说我剽窃
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.table.*;
    import javax.swing.*;
    import javax.swing.event.*;public class JTableDemo extends JFrame implements TableModelListener

        private JTable table;              //表格
        private MyTable mytable;           //TableModel
        private JComboBox c;               //班级
        private JLabel label;    public JTableDemo() 
        {
         super("TableModelDemo");
         setSize(400, 300);     
    try
    {    //设置系统外观
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    }catch(Exception e){}

         Container container = getContentPane();
            //创建表格
         mytable = new MyTable();
         mytable.addTableModelListener(this);
            table = new JTable(mytable);
            //创建下拉框
            c = new JComboBox();
            c.addItem("03A01");
            c.addItem("03A02");
            c.addItem("03A03");
            //设置表格第3列的单元格编辑器
            table.getColumnModel().getColumn(2).setCellEditor(new DefaultCellEditor(c));        container.add(new JScrollPane(table));
            
            //创建标签,显示信息
            label = new JLabel("", JLabel.CENTER);
            label.setPreferredSize(new Dimension(400, 30));
            label.setFont(new Font("Serif", Font.PLAIN, 14));
            container.add(label, BorderLayout.SOUTH);
            
            setVisible(true);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
        
        //处理TableModelEvent事件
        public void tableChanged(TableModelEvent event)
        {
         int row = event.getFirstRow();
            String fullName = ((String)(mytable.getValueAt(row, 1)));
            String className =((String)(mytable.getValueAt(row, 2)));
            label.setText(fullName + "现在是 " + className + " 的同学");
        }    public static void main(String args[]) 
        {
            JTableDemo application = new JTableDemo();
        }
    }class MyTable extends AbstractTableModel
    {
        private Object[][] data = 
        {
          {"032520", "张三", "03A01", new Integer(50), new Integer(50), 
                                      new Integer(50),new Integer(50 + 50 + 50)},
          {"032521", "李四", "03A02", new Integer(45), new Integer(46), 
                                      new Integer(48), new Integer(45 + 46 + 48)}
        };
        private String[] header = {"学号", "姓名", "班级", "数学", "语文", "英语", "总分"};
        //获取列数
        public int getColumnCount() 
        {
            return header.length;
        }
        //获取行数
        public int getRowCount() 
        {
            return data.length;
        }
        //获取列名
        public String getColumnName(int col) 
        {
            return header[col];
        }
        //获取单元格对应的值
        public Object getValueAt(int row, int col) 
        {
            return data[row][col];
        }
        //获取每列数据的类型
    public Class getColumnClass(int cc) 
    {
        return getValueAt(0, cc).getClass();
    }
    //设置单元格为可编辑
    public boolean isCellEditable(int rowIndex, int columnIndex) 
    {
            return true;
      }
    //设置单元格所对应的值,
        public void setValueAt(Object value, int row, int col) 
        {
         if(col != 2)
         return;
        data[row][col] = value;
            fireTableCellUpdated(row, col);
        }
    }