좋은 아침입니다. 셀의 내용을 기반으로 jtable 행의 높이를 변경하는 Multilinecellrenenderer 있습니다.JTable에서 cellrenenderer 바깥에서 테이블 높이를 설정하는 방법
public Component getTableCellRendererComponent(JTable table, Object
value, boolean isSelected, boolean hasFocus, int row, int column) {
setText(value.toString());//or something in value, like value.getNote()...
if (isSelected) {
setForeground(table.getSelectionForeground());
setBackground(table.getSelectionBackground());
} else {
setForeground(table.getForeground());
setBackground(table.getBackground());
}
setSize(table.getColumnModel().getColumn(column).getWidth(),
getPreferredSize().height);
if (table.getRowHeight(row) <= getPreferredSize().height) {
table.setRowHeight(row, getPreferredSize().height);
}
return this;
}
나는 렌더러 내부의 JTable를 수정하면이 무한 루프에서 실행하게 이해하고 내가 로그 문을 사용하여 확인 내 코드에서 일어나고있다. 또한 모델의 내용을 추가하는 동안 행 높이를 수정할 수 있다는 것을 알고 있고 내가 아는 모든 것을 시도했지만 렌더러 외부에 행의 높이를 설정할 수 없다는 것을 알고 있습니다. 아무도 나를 도울 수 없었다 table.setRowHeight(int,int)
세포 renenderer 밖으로 전화 할 수 있습니다.
는 동적으로 그냥 현재 행 번호와 원하는 높이를 얻는 방법을 모르는 다음 문
for(ProductRow object: data){
model.addRow(new Object[]{object.getProductNumber(),object.getDescription(),
object.getLastTouchedOn(),object.getLastTouchedBy()});
}
를 사용하여 모델의 콘텐츠를 추가하고 있습니다. 도와주세요. 감사합니다.
[예] (http://stackoverflow.com/a/11179669/230513). – trashgod
고마워요 많은 매력처럼 작동했습니다 – Ashish
@ 답장으로 만드는 방법 : – nachokk