请问高手:
如何用JFileChooser把数据导入JTable中
要求在JTable中显示出来.可以做到吗?

解决方案 »

  1. 可以
    而且不難
    樓主可以把從jFileChooser得到的數據組建成一個ArrayList
    那樣操作起來比較方便
      

  2. 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了
      

  3. 呵呵,谢谢楼上的朋友了啊.非常感谢!!!:-)
    我做的是java的GUI程序..主窗体添加JTable控件.用来显示数据,用了一个菜单,里面有一个"导入"的一项,用来导入数据
    做了以上操作也不能够刷新Jtable的数据
    JTable怎么刷新啊.
      


  4. to 楼主:
    可以定义一个TableModel的类extends abstractTableModel
    通过model来实现对Jtable操作
    只要model的数据发生变化,调用
    table.tableChanged(new TableModelEvent(tableModel,0,arrayList.size()))就可以实现
    table的刷新
      

类似问题 »