关于JTable中导入数据. 请问高手:如何用JFileChooser把数据导入JTable中要求在JTable中显示出来.可以做到吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以而且不難樓主可以把從jFileChooser得到的數據組建成一個ArrayList那樣操作起來比較方便 public class excelToJtable { JFileChooser fileChooser=new JFileChooser(); HSSFWorkbook workBook; POIFSFileSystem fileSystem; ArrayList arrayList; public void getWorkBook() { try { fileChooser.showOpenDialog(null); if (fileChooser.getSelectedFile() == null) { System.out.println("沒有選擇文件!"); return; } File file = fileChooser.getSelectedFile(); FileInputStream inputStream = new FileInputStream(file); fileSystem = new POIFSFileSystem(inputStream); workBook = new HSSFWorkbook(fileSystem); createArrayList(); } catch (IOException ex) { } } public void createArrayList() { arrayList = new ArrayList(); HSSFSheet sheet = workBook.getSheetAt(0); int rowNum = sheet.getLastRowNum()+1; for (int i = 0; i < rowNum; i++) { HSSFRow row = sheet.getRow(i); Object[] object = new Object[row.getLastCellNum()+1]; for (short j = row.getFirstCellNum(); j < row.getLastCellNum()+1; j++) { object[j] = row.getCell(j).getStringCellValue(); } arrayList.add(object); } } public void inputToTable(){ for(int i=0;i<arrayList.size();i++){ Object[] obj=(Object[])arrayList.get(i); for(int j=0;j<obj.length;j++){ System.out.print(obj[j]+" "); if(j==obj.length-1){ System.out.println(""); } } } } public static void main(String[] args){ excelToJtable excel=new excelToJtable(); excel.getWorkBook(); excel.inputToTable(); }}to 樓主:上面的代码,是将资料从excel导入到jTable的代码,不过,我只是生成了ArrayList物件,我想搂主应该知道怎么把arrayList中的数据放到table中,所以就没有写详细代码当然,这里还有导入poi包,专门处理Excel的同样,其他格式的资料也大同小异,只要想办法能组建成arrayList就ok了 呵呵,谢谢楼上的朋友了啊.非常感谢!!!:-)我做的是java的GUI程序..主窗体添加JTable控件.用来显示数据,用了一个菜单,里面有一个"导入"的一项,用来导入数据做了以上操作也不能够刷新Jtable的数据JTable怎么刷新啊. to 楼主:可以定义一个TableModel的类extends abstractTableModel通过model来实现对Jtable操作只要model的数据发生变化,调用table.tableChanged(new TableModelEvent(tableModel,0,arrayList.size()))就可以实现table的刷新 java静态方法问题 兼容问题 如何从多对多的关系的列表中快速搜索出有关联的记录? 【求助】在线程中怎么访问父进程的内存????? JTree类显示文件目录树的问题 ***十万火急!!!关于URLConnection在线等待 动态数组的运用 how to use jar ? wait online ! java中有无计算两点间斜率的函数? 精通RMI请进。 一个窗体能否把另一个窗体关闭? 棋牌类游戏的大厅如何开发
而且不難
樓主可以把從jFileChooser得到的數據組建成一個ArrayList
那樣操作起來比較方便
JFileChooser fileChooser=new JFileChooser();
HSSFWorkbook workBook;
POIFSFileSystem fileSystem;
ArrayList arrayList; public void getWorkBook() {
try {
fileChooser.showOpenDialog(null);
if (fileChooser.getSelectedFile() == null) {
System.out.println("沒有選擇文件!");
return;
}
File file = fileChooser.getSelectedFile();
FileInputStream inputStream = new FileInputStream(file);
fileSystem = new POIFSFileSystem(inputStream);
workBook = new HSSFWorkbook(fileSystem);
createArrayList();
} catch (IOException ex) {
}
} public void createArrayList() {
arrayList = new ArrayList();
HSSFSheet sheet = workBook.getSheetAt(0);
int rowNum = sheet.getLastRowNum()+1;
for (int i = 0; i < rowNum; i++) {
HSSFRow row = sheet.getRow(i);
Object[] object = new Object[row.getLastCellNum()+1];
for (short j = row.getFirstCellNum(); j < row.getLastCellNum()+1; j++) {
object[j] = row.getCell(j).getStringCellValue();
}
arrayList.add(object);
} }
public void inputToTable(){
for(int i=0;i<arrayList.size();i++){
Object[] obj=(Object[])arrayList.get(i);
for(int j=0;j<obj.length;j++){
System.out.print(obj[j]+" ");
if(j==obj.length-1){
System.out.println("");
}
}
}
}
public static void main(String[] args){
excelToJtable excel=new excelToJtable();
excel.getWorkBook();
excel.inputToTable(); }
}to 樓主:
上面的代码,是将资料从excel导入到jTable的代码,不过,我只是生成了ArrayList物件,我想搂主应该知道怎么把arrayList中的数据放到table中,所以就没有写详细代码
当然,这里还有导入poi包,专门处理Excel的
同样,其他格式的资料也大同小异,只要想办法能组建成arrayList就ok了
我做的是java的GUI程序..主窗体添加JTable控件.用来显示数据,用了一个菜单,里面有一个"导入"的一项,用来导入数据
做了以上操作也不能够刷新Jtable的数据
JTable怎么刷新啊.
to 楼主:
可以定义一个TableModel的类extends abstractTableModel
通过model来实现对Jtable操作
只要model的数据发生变化,调用
table.tableChanged(new TableModelEvent(tableModel,0,arrayList.size()))就可以实现
table的刷新