Loc*_*han 1 java swing jtable date-format tablecellrenderer
我需要使日期部分(dd,MMMM,yyyy)垂直对齐.我在日期格式的固定长度的月份和日期问了一个问题?插入填充字母,但我发现它在比例字体的情况下没有帮助(字母的宽度不同).例如,使用Lucida Fax字体:
为不同的日期部件制作不同的标签正在考虑中,但它太手动了.如果列宽很小,很难将文本包裹起来....
谢谢
请注意,对于所有渲染器(不包括preparedRenderer),您必须/确保在任何列/行更改后必须调用它 JTable
TableColumnModel m = myTable.getColumnModel();
m.getColumn(5).setCellRenderer(new SubstDateRenderer());
Run Code Online (Sandbox Code Playgroud)
在这里你可以为TableCell设置BackGround,ForeGround
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.table.DefaultTableCellRenderer;
public class SubstDateRenderer extends DefaultTableCellRenderer {
private static final long serialVersionUID = 1L;
private Date dateValue;
private SimpleDateFormat sdfNewValue = new SimpleDateFormat("dd.MMMM.yyyy");
private String sdfNewValueString = "";
public SubstDateRenderer() {// formating TableCell
super();
setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
}
@Override
public void setValue(Object value) {
if ((value != null) && (value instanceof Date)) {
dateValue = (Date) value;
sdfNewValueString = sdfNewValue.format(dateValue);
value = sdfNewValueString;
}
super.setValue(value);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1021 次 |
| 最近记录: |