У меня есть программа Swing
с JTable
, и есть два столбца: один для имен и один для телефонных номеров, связанных с этими именами. В настоящее время программа позволяет выбирать строки, что приводит к выбору данных в обоих столбцах. Я хочу, чтобы выбранные данные выводились в массив строк, но только данные из определенного столбца (с номерами телефонов), независимо от того, сколько строк выбрано. Как бы я go об этом?
Я думал о том, чтобы изменить 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);
}