开发者社区> 问答> 正文

仅具有特定列的可选JTable和/或仅从一列获取数据

我有一个Swing带有的程序JTable,并且有两列:一列用于名称,一列用于与这些名称关联的电话号码。当前,该程序允许选择行,这将导致两列中的数据都被选中。我希望将选定的数据输出到字符串数组,但是无论选定多少行,都只能输出特定列(带有电话号码)中的数据。我将如何处理?

我正在考虑更改setColumnSelectionAllowed(false)为setColumnSelectionAllowed(true)并允许JHeader单击以选择整个行,或者以某种方式允许getValueAt(int row, int column)将其放入数组中,并且仅允许读取电话号码列。

初始化表的代码:

// Initializing the JTable
        String[] columns = {"Student", "Phone"};
        students = new JTable(data, columns);
        students.setGridColor(Color.lightGray);
        students.setPreferredScrollableViewportSize(new Dimension(500, 400));
        TableColumnModel columnModel = students.getColumnModel();
        columnModel.getColumn(0).setPreferredWidth(100);
        columnModel.getColumn(1).setPreferredWidth(100);
        students.setRowHeight(25);
        students.setFillsViewportHeight(true);
        students.setRowSelectionAllowed(true);
        students.setColumnSelectionAllowed(false);
        students.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

该表格是由CSV文件制成的数组:

        String[][] myNewArray1 = new String[30][30]; //creates an array
        Scanner myScanner1 = new Scanner(filePath1); //creates a scanner which uses the text file
        int k = 0;
        while (myScanner1.hasNext()) {
            myNewArray1[k] = myScanner1.nextLine().split(",");
            k++;
        }
        return (myNewArray1);
    }

    // Driver method
    public static void main(String[] args) throws Exception {
        File filePath1 = new File("C:\\Users\\cmorl\\IdeaProjects\\CompSciIA\\src\\CompSciIA.csv"); //file path
        String[][] data1;
        data1 = makeArrayFromTxt(filePath1);
        new Database(data1);
    }

问题来源:Stack Overflow

展开
收起
montos 2020-03-26 21:35:52 553 0
1 条回答
写回答
取消 提交回答
  • TableModel model =  table.getModel();    
      List <String> data = new ArrayList();
      for (int count = 0; count < model.getRowCount(); count++){
                      data.add(model.getValueAt(count, 0).toString()); //Change 0 with 1 if you want column 2
       }
    

    回答来源:Stack Overflow

    2020-03-26 21:36:15
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载