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
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