커스텀 TableCellRenderer를 가지는 JTable가 있습니다.Look & Feel 갱신 후의 JTable의 갱신
public class DateCellRenderer extends DefaultTableCellRenderer {
private static final long serialVersionUID = 58L;
public DateCellRenderer() {
super();
setHorizontalAlignment(CENTER);
setOpaque(true);
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
if (value instanceof Date) {
String date = new SimpleDateFormat("dd-MM-yyyy").format((Date) value);
setText(date);
}
return this;
}
}
또한 내 응용 프로그램에는 모양과 느낌을 변경할 수있는 드롭 다운 메뉴가 있습니다. 이 드롭 다운 메뉴는 상위 프레임에 있으며 테이블은 대화 상자에 있습니다. 대화 상자가 열리면 상위 프레임에 액세스 할 수 없습니다. 그래서 룩앤필을 바꾸려면 먼저 대화 상자를 닫아야합니다.
테이블이 일부 데이터로 채워진 경우 특정 스킨에서 상위 프레임의 모양과 느낌을 변경하고 다시 대화 상자를 열고 TableCellRenderer를 추가 한 열은 이전 모양과 느낌을 유지합니다. . 다른 열이 새로운 모양과 느낌으로 렌더링되는 동안은 업데이트되지 않습니다.
문제점 및 해결책을 찾을 수 없습니다. 어떤 도움을받을 수 있습니다.
참고 : 응용 프로그램의 모양과 느낌 업데이트는 사전에 다음 코드에 의해
javax.swing.UIManager.setLookAndFeel(uiProperties.getThemeModel().getThemeClass());
ComponentFactory.getLibraryFrame().getRootPane().updateUI();
for (int i = 0; i < Frame.getWindows().length; i++) {
SwingUtilities.updateComponentTreeUI(Frame.getWindows()[i]);
}
for (int i = 0; i < Frame.getFrames().length; i++) {
SwingUtilities.updateComponentTreeUI(Frame.getFrames()[i]);
}
감사한다.
가 그럼 난 빠른에 테마를 변경하고, 두 번째 열은 업데이트되지는 UI "출시": 하이파이 테마에서
먼저 선택JTable로는 다음과 같습니다
public class MovieSearchResultTable extends BaseTable {
private static final long serialVersionUID = 45L;
public MovieSearchResultTable(TableModel tableModel) {
super(tableModel);
LibraryLogger.initMessage(getClass().getSimpleName());
}
@Override
public void initialize() {
setFillsViewportHeight(true);
setAutoResizeMode(AUTO_RESIZE_OFF);
getColumnModel().getColumn(1).setCellRenderer(new DateCellRenderer());//if I comment out this line then no problem. but without CellRenderer how could I format a Date, if I use formatted String instead of Date, then the column will not sort!!
}
@Override
public boolean getScrollableTracksViewportWidth() {
return getPreferredSize().getWidth() < getParent().getWidth();
}
}
을
Look & Feel에서 – mKorbel
jtatoo - http://www.jtattoo.net/을 사용하고 있습니다. 그것은 하위 모양을 가지고 있으며, HiFi, Fast, Acryl, Aero 등의 느낌을줍니다.드롭 다운은 이러한 테마 목록으로 구성됩니다. –
지금 당장 귀하의 질문은 분명하지만 코드가 없으면 몇 가지 문제가 발생합니다 ..... 또는 사진이 꽤 un_answerable 인 경우 JTatoo ○ 테마를 변경하려고 시도 했습니까? – mKorbel