本帖最后由 wea56567 于 2013-06-24 15:57:28 编辑

解决方案 »

  1.   

    循环map,动态创建jtable的每一行,最后追加到jtable容器上
      

  2.   

    利用map把数据添加到jtable,map数据是可修改的
      

  3.   

    首先有一个tablemodel, 把hashmap放进去, 然后getvalueat(row,col)显示数据
    修改, setvalueat(row,col,value) 中修改map
      

  4.   

    怎么放hashmap,不是静态的数据,新手
      

  5.   

    package com.sy.table;import java.awt.event.WindowEvent;
    import java.awt.event.WindowListener;
    import java.util.HashMap;
    import java.util.Set;import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.table.DefaultTableModel;public class TableTest {
    /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    JFrame frame = new JFrame();
    MyTableModel model = new MyTableModel();
    HashMap<String,String[]> map = new HashMap<String, String[]>();
    for(int i=0;i<10;i++){
    map.put(i+"", new String[]{i+""+1,i+""+2,i+""+3,i+""+4,i+""+5});
    }
    model.setMap(map);
    JTable table = new JTable(model);
    JScrollPane pane = new JScrollPane(table);
    table.setSize(450, 390);
    frame.add(pane);
    frame.setSize(500, 400);
    frame.setVisible(true);
    }}
    class MyTableModel extends DefaultTableModel{
    private HashMap<String,String[]> map = null; @Override
    public Object getValueAt(int row, int column) {
    // TODO Auto-generated method stub
    Set set = getMap().keySet();
    Object[] keys = set.toArray(new String[0]);
    return getMap().get(keys[row])[column];
    } @Override
    public void setValueAt(Object aValue, int row, int column) {
    // TODO Auto-generated method stub
    Set set = getMap().keySet();
    Object[] keys = set.toArray(new String[0]);
    getMap().get(keys[row])[column] = (String)aValue;
    }
    @Override
    public int getRowCount() {
    // TODO Auto-generated method stub
    if(getMap()==null){
    return 0;
    }
    return getMap().keySet().size();
    } @Override
    public int getColumnCount() {
    if(getMap()==null){
    return 0;
    }
    return map.values().iterator().next().length;
    } @Override
    public String getColumnName(int column) {
    // TODO Auto-generated method stub
    return column+"";
    } public void setMap(HashMap<String,String[]> map) {
    this.map = map;
    } public HashMap<String,String[]> getMap() {
    return map;
    }
    }
    凑活看下吧,hashmap不建议使用,一般table都有顺序。 建议list
      

  6.   

    谢谢大家的积极帮助(好官方)虽然经过了这么长时间问题也没有解决,而且我的东西现在也用不着了,所以结贴,对有帮助的人我会按这给的,thanks