只有特定列可选择JTable和/或只从一列中获取数据



我有一个带有JTableSwing程序,有两列:一列用于姓名,另一列用于与这些姓名相关的电话号码。目前,该程序允许选择行,这会导致两列中的数据都被选中。我希望所选数据输出到字符串数组中,但无论选择了多少行,都只能输出某一列(带有电话号码的列(中的数据。我该怎么做?

我正在考虑将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);
}
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
}

相关内容

最新更新