日期:2014-05-18  浏览次数:20798 次

map数据添加到jtable
本帖最后由 wea56567 于 2013-06-24 15:57:28 编辑
运用map的程序把动态数据写到jtable里面去,
求指导
jtable map

------解决方案--------------------
循环map,动态创建jtable的每一行,最后追加到jtable容器上
------解决方案--------------------
首先有一个tablemodel, 把hashmap放进去, 然后getvalueat(row,col)显示数据
修改, setvalueat(row,col,value) 中修改map
------解决方案--------------------
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