할 방법이 있습니까?어떻게 JTable에서 행을 숨길 수 있습니까?
답변
가장 쉬운 방법은 해당 요소를 모델에서 제거하는 것입니다.
Sun's Tutorial for JTables을 확인하고 정렬 및 필터링 섹션을 확인하십시오.
Java 1.6에서만 필터링이 잘못되었거나 필터링 되었습니까? – joycollector
예, 두렵습니다. – willcodejavaforfood
<1.6에서 필터링을 시도하려면 swinglabs의 JXTable을 사용하십시오. 소트 기능을 사용해 다른 TableModel를 장식하는 독자적인 TableModel를 작성할 수도 있습니다. – KitsuneYMG
행을 필터링하는 데 사용할 수있는 RowFilter<DefaultTableModel, Object>
클래스가 있습니다. DefaultTableModel은 자신의 모델로 대체 될 수 있습니다. ListSelectionEvents을 듣고 예를 들어, 행에 액세스 할 때 필터링하려면 모델의 전체 행 인덱스에 표시되는 행의 인덱스를 번역하는 것을 잊지 마세요 방법
@Override
public boolean include(Entry entry) {
// All rows are included if no filter is set
if (filterText.isEmpty())
return true;
// If any of the column values contains the filter text,
// the row can be shown
for (int i = 0; i < entry.getValueCount(); i++) {
String value = entry.getStringValue(i);
if (value.toLowerCase().indexOf(filterText) != -1)
return true;
}
return false;
}
를 구현합니다. 자바뿐만 아니라이하는 기능을 제공합니다
public void valueChanged(ListSelectionEvent e) {
ListSelectionModel lsm = (ListSelectionModel) e.getSource();
int visibleRowIndex = ... // Get the index of the selected row
// Convert from the selection index based on the visible items to the
// internal index for all elements.
int internalRowIndex = tableTexts
.convertRowIndexToModel(visibleRowIndex);
...
}
TY. 하지만 Java 1.5에 대한 해결책을 찾고있었습니다 ... – joycollector
이것은 받아 들여진 대답이어야합니다 –
당신은 필터링 값으로 채워 및 사용자 정의 렌더러에서 이러한 구현 각 열에 대한 arraylists을 설정할 수 있습니다. 셀의 전체 행 값이 충족되지 않으면 렌더러는 row + 1을 사용하여 재귀 적으로 자신을 호출합니다.
세포 행이 기준을 충족 않을 경우,이 렌더링됩니다이 다른 ArrayList에 저장 행 번호가 이미이 방법은 고객 렌더러에 최선의 예에 의해 설명, 렌더링 JLabel의
public Component getTableCellRendererComponent(JTable table, Object color,
boolean isSelected, boolean hasFocus, int row, int column) {
Object value;
String s;
try {
if (row == 0) {
drawn[column].clear();
}// drawn is arraylist which stores cols rend
if (row > table.getModel().getDataVector.size()) {
return null;
}// if we go too far
if (drawn[column].contains(Integer.toString(row)) == true) {
// already rendered?
return getTableCellRendererComponent(table, color, isSelected,
hasFocus, (row + 1), column);
}// render row+1
for (int i = 0; i < filters.length; i++) {
value = table.getModel().getValueAt(row, i);
s = (i == 1) ? df.format(value) : value.toString();
if (filters[i].contains(s) != true) {
//try and put in next row, if succeeds when it reaches column 8 it adds row to
return getTableCellRendererComponent(table, color,
isSelected, hasFocus, (row + 1), column);
}
}
value = table.getModel().getValueAt(row, column);
setFont(getFont().deriveFont(Font.BOLD));
if ((isSelected == false)) {
if ((column == 1)) {
setForeground(Color.magenta);
}// just formatting
else {
setForeground(Color.black);
setBackground(Color.white);
}
} else {
setBackground(Color.blue);
setForeground(Color.white);
}
if ((column == 1))// col 1 is a date, other columns strings
{
setText((value == null) ? "" : df.format(value));
} else {
setText((value == null) ? "" : value.toString());
}
todayStr = df.format(new java.util.Date());
dateval = table.getModel().getValueAt(row, 1);
String datevalStr = df.format(dateval);
if (datevalStr.equals(todayStr)) {
setForeground(Color.red);
}
drawn[column].add(Integer.toString(row));// mark row as rendered
} catch (Exception e) {
e.getMessage();
return null;
}
return this;
}
- 1. JTable에서 행을 어떻게 끌어 놓을까요?
- 2. 어떻게하면 jtable에서 행을 지정할 수 있습니까?
- 3. JTable에서 행을 제거하는 방법은 무엇입니까?
- 4. 어떻게 목록보기 WPF의 머리글을 숨길 수 있습니까?
- 5. 이 도트를 어떻게 숨길 수 있습니까?
- 6. 어떻게 MPMoviePlayer 컨트롤을 숨길 수 있습니까?
- 7. 어떻게 펄 코드를 숨길 수 있습니까?
- 8. 요소를 숨길 수있는 경우에만 JavaScript를 요청하여 숨길 수 있습니까?
- 9. 깨진 이미지를 숨길 수 있습니까?
- 10. 데이터를 스니핑으로부터 숨길 수 있습니까?
- 11. iAd가 탭되면이를 숨길 수 있습니까?
- 12. Android에서 SMS를 숨길 수 있습니까?
- 13. JTable에서 단어 줄 바꿈을 끌 수 있습니까?
- 14. 어떤 행을 클릭했는지 어떻게 알 수 있습니까?
- 15. gtk.table의 행을 어떻게 강조 할 수 있습니까?
- 16. jQuery 도움말 : 어떻게 행을 선택할 수 있습니까?
- 17. QTableWidget에서 어떻게 행을 선택할 수 있습니까?
- 18. 파이썬에서이 긴 행을 어떻게 나눌 수 있습니까?
- 19. DateTextField가 숨겨져있을 때 어떻게 DatePicker 아이콘을 숨길 수 있습니까?
- 20. jqgrid에서 어떻게 캡션 바를 제거 (또는 숨길 수 있습니까?
- 21. 어떻게 jQuery를 사용하여 일부 데이터를 표시하거나 숨길 수 있습니까?
- 22. Numpy에서 레코드 배열의 요소를 어떻게 숨길 수 있습니까?
- 23. iPhone SDK : 어떻게 경고 상자를 숨길 수 있습니까?
- 24. 어떻게 서버에 MyService.svc에 WCF 서비스가 있는지 숨길 수 있습니까?
- 25. 어떻게 세그먼트 화 된 컨트롤러를 숨길 수 있습니까?
- 26. 어떻게 아이폰의 탭 모음에서 탭을 숨길 수 있습니까?
- 27. 안드로이드에서 내 데이터 폴더를 어떻게 숨길 수 있습니까?
- 28. .NET MVC Ajax Form - 어떻게 숨길 수 있습니까?
- 29. 어떻게 사용 후 아이폰 시뮬레이터에서 키패드를 숨길 수 있습니까?
- 30. 내 페이스 북 신청 활동을 어떻게 숨길 수 있습니까?
를 확장하지만 표시해야하는 경우 나중에 그 사람? – joycollector
그럼 다시 추가하십시오 :) – willcodejavaforfood
마지막으로 저는 이렇게했습니다 ... 두 개의 데이터 세트 ... 하나는 꽉 찼고, 다른 하나는 fireDataTableChanged가 호출 될 때 채워집니다 ...하지만 느린 것 같습니다 ... – joycollector