我有一个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
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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。