我有一個帶有自定義TableCellRenderer的JTable。在外觀更新後刷新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();
}
}
從外觀和感覺 – mKorbel 2012-02-21 17:45:39
我使用jtatoo - http://www.jtattoo.net/外觀和感覺。它的外觀和感覺像HiFi,Fast,Acryl,Aero等。該下拉列表包含這些主題列表。 – 2012-02-21 17:54:25
現在是你的問題清楚,但沒有代碼生成一些問題.....或圖片是你的問題相當un_answerable,你只是試圖改變JTatoo○s主題飛,nothins其他? – mKorbel 2012-02-21 17:58:56