map数据添加到jtable 本帖最后由 wea56567 于 2013-06-24 15:57:28 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 循环map,动态创建jtable的每一行,最后追加到jtable容器上 利用map把数据添加到jtable,map数据是可修改的 首先有一个tablemodel, 把hashmap放进去, 然后getvalueat(row,col)显示数据修改, setvalueat(row,col,value) 中修改map 怎么放hashmap,不是静态的数据,新手 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 谢谢大家的积极帮助(好官方)虽然经过了这么长时间问题也没有解决,而且我的东西现在也用不着了,所以结贴,对有帮助的人我会按这给的,thanks 触发器 项目热部署? 想建立一个响应android HTTP Client的服务器端程序,选什么projcet好? 菜鸟求助,请各位高手帮帮忙,谢谢 hibernate rollback异常 急!高手帮忙!! hibernate中session的问题 weblogic 9.2 端口怎么去除? 初学struts2.0问题 急!! sql server连接池汉字设置 eclipse+weblogic的结合问题 求大神解决!本地环境和服务器环境 插入数据库出现重复数据的问题?
修改, setvalueat(row,col,value) 中修改map
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