텍스트 파일에서 데이터를 가져 와서 형성된 JTable이 있습니다. 약 522 개의 열과 수천 개의 행이있는 거대한 테이블입니다. 이 테이블의 많은 셀은 비어 있습니다. 이제 일부 열에서 사용할 수있는 데이터에 수학 연산을 적용 할 수 있기를 바랍니다. 이제는 여러 열을 선택할 수 있지만 이러한 값을 가져 오는 방법을 알지 못합니다. 테이블 열의 값을 저장하고 알고리즘에 따라 각 값을 수정할 수있는 배열 배열이 필요하다는 것을 알고 있습니다. 지금 당장 간단히 시작하기 위해 선택 열의 값을 인쇄 할 수 있기를 원하지만 단순하게 유지하기 위해 하나의 값만 인쇄 할 수 있기를 원하지만 그럴 수는 없습니다. 특정 셀의 값이 2로 인쇄됩니다. 4 번. 다음과 같이 내 테스트 코드는 다음과 같습니다 선택 전체 열 들어 ,이 코드를 사용하고 있습니다 : 나는 버튼이 내 GUI에서JTable의 전체 열 수정
public static void selectWholeColumn(final JTable table)
{
final JTableHeader header = table.getTableHeader();
header.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
int col = header.columnAtPoint(e.getPoint());
if(header.getCursor().getType() == Cursor.E_RESIZE_CURSOR)
{
e.consume();
}
else
{
table.setColumnSelectionAllowed(true);
table.setRowSelectionAllowed(false);
table.clearSelection();
table.setColumnSelectionInterval(col,col);
table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
}
}
});
}
를하는 화재를 백엔드 클래스와 같은 JTable로 소요이 방법을 클릭하면 매개 변수는 선택한 열에서 모든 행의 값을 출력하기 위해 실행됩니다
public void filterData(final JTable table)
{
TableModel model = table.getModel();
table.setCellSelectionEnabled(true);
table.setColumnSelectionAllowed(true);
table.setRowSelectionAllowed(false);
ListSelectionModel cellSelectionModel = table.getSelectionModel();
cellSelectionModel.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
cellSelectionModel.addListSelectionListener(new ListSelectionListener()
{
public void valueChanged(ListSelectionEvent e)
{
String selectedData = null;
int[] selectedRow = table.getSelectedRows();
int[] selectedColumns = table.getSelectedColumns();
for (int i = 0; i < selectedColumns.length; i++)
{
for (int j = 0; j < selectedRow.length; j++)
{
selectedData = (String) table.getValueAt(selectedRow[i], selectedColumns[j]);
}
}
System.out.println("Selected: " + selectedData);
}
});
어떤 제안을 내가 인쇄하거나 기본적으로 선택된 열이나 열의 모든 행의 값을 얻을 수있는 방법으로, 나는 할 수 있도록 한 번에 데이터를 수정 하시겠습니까?
감사합니다. 리스너가 각 변화에 대해 호출됩니다 있지만