JTable에서 일부 행을 제거하려고합니다. 내가 어떻게 해?JTable에서 행을 제거하는 방법은 무엇입니까?
답변
JTable은 일반적으로 MVC 구현의보기 부분을 형성합니다. 모델에서 행을 제거하려고합니다. 이러한 변경을 대기하고있는 JTable가이 삭제를 반영하도록 (듯이) 갱신됩니다. 따라서 JTable의 메소드로 removeRow() 또는 유사한 메소드를 찾을 수 없습니다. 당신이 사용할 수있는 간단한 모델의 DefaultTableModel를에서
는고맙습니다. 도움을 받으려면 고맙지 만 행을 삭제하는 방법을 알고 싶습니다. 테이블 모델, 메신저 방법을 얻지 못했습니다. –
다음과 같은 내용을 읽으십시오. http://java.sun.com/docs/books/tutorial/uiswing/components/table.html – dave
요약하면 사용자 정의 TableModel을 작성합니다. JTable는 행을 저장하지 않고 TableModel에 위임합니다. 원하는 경우 AbstractTableModel에서 서브 클래스화할 수 있습니다. 행을 삭제할 때마다 fireTableRowsDeleted()를 호출하십시오. – dave
봐 :
http://java.sun.com/javase/6/docs/api/javax/swing/table/DefaultTableModel.html
이 AbstractTableModel가 연장하지만, 기본 목적에 충분합니다. 언제든지 AbstractTableModel을 확장하고 직접 만들 수 있습니다. JTable에서도 설정했는지 확인하십시오. JTable의에서 행을 제거하기 위해
http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#data
, 당신은 제거해야합니다 : 테이블 모델로 JTable의 사용에 대한 자세한 내용은 기본 일 튜토리얼에서
는http://java.sun.com/javase/6/docs/api/javax/swing/table/AbstractTableModel.html
봐 타겟 행을 기초로 한 것 TableModel. 예를 들어, 귀하의 TableModel이 DefaultTableModel의 인스턴스의 경우, 다음을 수행하여 행을 제거 할 수 있습니다
((DefaultTableModel)myJTable.getModel()).removeRow(rowToRemove);
고맙습니다.하지만이 방법을 사용했지만 작동하지 않습니다. 사실 내 JTable은 (내가 만든) LocationTable 모델 extendind 추상 테이블 모델을 사용하고 있으므로 내가 removeRow (i) 메서드를 사용할 때 "cant resolve removeRow()"오류가 발생합니다. 대체 방법을 사용해야합니다. –
글쎄, 자신 만의 커스텀 TableModel을 작성하면, 독자적인 "removeRow"메소드를 작성할 책임이 있습니다. 이것이 어떻게 수행되는지 보려면 DefaultTableModel의 소스 코드를보십시오. 쉬운 해결책은 DefaultTableModel을 사용하는 것입니다. 왜 사용자 정의 TableModel을 만들어야한다고 생각합니까? 모델 사용의 기본 사항을 이해할 때까지 제공된 기본값을 사용하십시오. – camickr
JTable의에 필터를 적용하는 올바른 방법은 TableRowSorter를 추가 한 RowFilter 인터페이스를 통해입니다. 이 인터페이스를 사용하면 기본 모델을 변경하지 않고도 모델보기를 변경할 수 있습니다. 이 전략은 Model-View-Controller 패러다임을 보존하는 반면, 모델 자체에서 숨길 행을 제거하면 우려 사항을 혼동하여 패러다임을 깨뜨릴 수 있습니다.
간단한 해결책이 필요하면 DefaultTableModel을 사용해보십시오.
테이블 모델을 직접 작성한 경우 AbstractTableModel을 확장 한 경우 removeRow() 메소드도 구현해야합니다. 정확한 구현은 데이터를 저장하는 데 사용 된 기본 구조에 따라 다릅니다.
public class SimpleTableModel extends AbstractTableModel {
private Vector<String> columnNames = new Vector<String>();
// Each value in the vector is a row; String[] - row data;
private Vector<String[]> data = new Vector<String[]>();
...
public String getValueAt(int row, int col) {
return data.get(row)[col];
}
...
public void removeRow(int row) {
data.removeElementAt(row);
}
}
사용한 경우 목록, 그것은 매우 비슷하게 될 것이다 :
// Each item in the list is a row; String[] - row data;
List<String[]> arr = new ArrayList<String[]>();
public void removeRow(int row) {
data.remove(row);
}
의 HashMap 당신이 벡터를 사용한 경우, 다음 이런 식으로 뭔가 할 수있다 예를 들어
, :
//Integer - row number; String[] - row data;
HashMap<Integer, String[]> data = new HashMap<Integer, String[]>();
public void removeRow(Integer row) {
data.remove(row);
}
그리고 당신이 하나
,536 같은 배열을 사용하는 경우String[][] data = { { "a", "b" }, { "c", "d" } };
배열에서 요소를 동적으로 제거 할 방법이 없기 때문에 운이 좋지는 않습니다. 어떤 행이 삭제되고 어떤 것이 아닌지를 알려주는 플래그를 개별적으로 저장하여 배열을 사용하려고 시도 할 수 있습니다.하지만 반대하는 것이 좋습니다 ... 불필요한 복잡성을 초래할 수 있으며 실제로는 이됩니다. 또 다른을 생성하여 문제를 해결하십시오. 결국 here으로 끝나는 확실한 방법입니다. 위의 방법 중 하나를 사용하여 대신 테이블 데이터를 저장하십시오.더 나은이 작동하는 방법의 이해, 무엇을 적절하게 자신의 모델 일을하게 할 들어
, 난 당신이 Java Tutorial, DefaultTableModel API을 참조 조언을 강하게그것은 source code을합니다.
음은 매우 간단 사람
for(int i = model.getRowCount() - 1; i >= 0; i--)
{
model.removeRow(i);
}
아침에 백만 건의 알림을받지 못합니다. ;-) – greenoldman
- 1. JTable에서 행을 어떻게 끌어 놓을까요?
- 2. JTable에서 전체 데이터 행을 굵게 만드는 방법은 무엇입니까?
- 3. 텍스트 파일에서 마지막 행을 제거하는 방법은 무엇입니까?
- 4. DataTable에서 특정 행을 제거하는 방법은 무엇입니까?
- 5. 특정 문자열이있는 행을 일치시키고 제거하는 방법은 무엇입니까?
- 6. jquery로 테이블 행을 제거하는 방법은 무엇입니까?
- 7. ActionListener를 사용하여 JTable에서 열을 제거하는 방법
- 8. 값을 확인하는 방법은 JTable에서 고유합니까?
- 9. 어떻게하면 jtable에서 행을 지정할 수 있습니까?
- 10. 어떻게 JTable에서 행을 숨길 수 있습니까?
- 11. JTable에서 행 페인팅
- 12. JTable에서 특정 열 설정을 지정하는 방법은 무엇입니까?
- 13. JTable에서 행 선택을 활성화/비활성화하는 방법은 무엇입니까?
- 14. JTable에서 텍스트를 가져 오는 방법은 무엇입니까?
- 15. 파일에서 행을 제거하는 더 나은 방법은?
- 16. DataGrid에서 행을 제거하는 방법
- 17. 거대한 데이터 테이블에서 행을 반복하지 않고 제거하는 방법은 무엇입니까?
- 18. "studentId"를 기반으로 텍스트 파일에서 행을 제거하는 방법은 무엇입니까?
- 19. Jquery/Javascript에서 별도의 div를 클릭하여 행을 제거하는 방법은 무엇입니까?
- 20. 순차 요소 ID를 유지하면서 테이블 행을 추가하고 제거하는 방법은 무엇입니까?
- 21. 표보기 셀에서 행을 숨길 때 공백을 제거하는 방법은 무엇입니까?
- 22. DataGridView의 맨 아래에서 편집 행을 제거하는 방법은 무엇입니까?
- 23. 하나 이상의 빈 또는 널 셀이있는 행을 제거하는 방법은 무엇입니까?
- 24. JTable에서 인덱스로 행 얻기
- 25. 창에서보기를 제거하는 방법은 무엇입니까?
- 26. Hadoop을 제거하는 방법은 무엇입니까?
- 27. tableview의 모든 행을 제거하는 방법
- 28. setValue가 Jtable에서 작동하지 않는 이유는 무엇입니까?
- 29. JTable에서 자동으로 열 너비를 계산합니다.
- 30. JTable에서 단일 열 끌기 비활성화
팁입니다 : 당신은 당신이 이미 시도 것을 설명하고, 당신이 읽은 온라인 자습서, 사람들이 당신을 도울 의향이 될 것입니다 무엇을합니다. 또는 샘플 코드를 제공하고 작동하지 않는 비트를 알려주십시오. 아직 읽지 않은 경우이 내용을 읽으십시오. http://java.sun.com/docs/books/tutorial/uiswing/components/table.html –