java.lang.Object java.awt.Component java.awt.Container javax.swing.JComponent javax.swing.JLabel javax.swing.table.DefaultTableCellRenderer
public class DefaultTableCellRenderer
呈现(显示) JTable
中每个单元格的标准类。
实现注意事项:此类继承自一个标准的组件类 JLabel
。但是 JTable
为其单元格的呈现使用了特殊的机制,因此要求稍微对其单元格渲染器的行为进行修改。该 table 类定义一个单元格渲染器,并将其用作呈现表中所有单元格的橡皮图章;它呈现第一个单元格、更改该单元格渲染器的内容、将原点移到新的位置、重新进行绘制,等等。标准的 JLabel
组件不是通过此方式使用的,每次绘制单元格时,我们都希望避免触发 revalidate
事件。这会大大降低程序的性能,因为 revalidate
消息会沿容器的层次结构向上传递,以确定任意其他组件是否将受到影响。由于该渲染器是绘制操作生命周期中唯一的父类,类似地,我们也希望避免与为进行绘制操作而遍历容器层次结构相关联的开销。所以此类将 validate
、invalidate
、revalidate
、repaint
和 firePropertyChange
方法重写为无操作,并单独重写 isOpaque
方法以提高性能。如果您编写自己的渲染器,请记住此性能方面的考虑。
警告:此类的已序列化对象与以后的 Swing 版本不兼容。当前的序列化支持适用于短期存储或运行相同 Swing 版本的应用程序之间的 RMI。从 1.4 版本开始,已在 java.beans
包中添加了支持所有 JavaBeansTM 长期存储的功能。请参见 XMLEncoder
。
JTable
嵌套类摘要 | |
---|---|
static class |
DefaultTableCellRenderer.UIResource DefaultTableCellRenderer 的一个子类,它实现 UIResource 。 |
从类 javax.swing.JLabel 继承的嵌套类/接口 |
---|
JLabel.AccessibleJLabel |
从类 javax.swing.JComponent 继承的嵌套类/接口 |
---|
JComponent.AccessibleJComponent |
从类 java.awt.Container 继承的嵌套类/接口 |
---|
Container.AccessibleAWTContainer |
从类 java.awt.Component 继承的嵌套类/接口 |
---|
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy |
字段摘要 | |
---|---|
protected static Border |
noFocusBorder 一个空 Border 。 |
从类 javax.swing.JLabel 继承的字段 |
---|
labelFor |
从类 javax.swing.JComponent 继承的字段 |
---|
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW |
从类 java.awt.Component 继承的字段 |
---|
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT |
从接口 javax.swing.SwingConstants 继承的字段 |
---|
BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST |
从接口 java.awt.image.ImageObserver 继承的字段 |
---|
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH |
构造方法摘要 | |
---|---|
DefaultTableCellRenderer() 创建一个默认的表单元格渲染器。 |
方法摘要 | |
---|---|
void |
firePropertyChange(String propertyName, boolean oldValue, boolean newValue) 因为性能原因而被重写。 |
protected void |
firePropertyChange(String propertyName, Object oldValue, Object newValue) 因为性能原因而被重写。 |
Component |
getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) 返回默认的表单元格渲染器。 |
void |
invalidate() 因为性能原因而被重写。 |
boolean |
isOpaque() 因为性能原因而被重写。 |
void |
repaint() 因为性能原因而被重写。 |
void |
repaint(long tm, int x, int y, int width, int height) 因为性能原因而被重写。 |
void |
repaint(Rectangle r) 因为性能原因而被重写。 |
void |
revalidate() 因为性能原因而被重写。 |
void |
setBackground(Color c) 重写 JComponent.setBackground 将未选定单元格的背景色分配为指定颜色。 |
void |
setForeground(Color c) 重写 JComponent.setForeground 将未选定单元格的前景色分配为指定颜色。 |
protected void |
setValue(Object value) 将要呈现的单元格的 String 对象设置为 value 。 |
void |
updateUI() 取自 UIManager 的关于外观 [L&F] 已更改的通知。 |
void |
validate() 因为性能原因而被重写。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
字段详细信息 |
---|
protected static Border noFocusBorder
Border
。可以不使用此字段。要更改此渲染器所使用的
Border
,请重写
getTableCellRendererComponent
方法并直接设置所返回组件的边界。
构造方法详细信息 |
---|
public DefaultTableCellRenderer()
方法详细信息 |
---|
public void setForeground(Color c)
JComponent.setForeground
将未选定单元格的前景色分配为指定颜色。
JComponent
中的
setForeground
c
- 将前景色设置为此值
Component.getForeground()
public void setBackground(Color c)
JComponent.setBackground
将未选定单元格的背景色分配为指定颜色。
JComponent
中的
setBackground
c
- 将背景色设置为此值
Component.getBackground()
,
JComponent.setOpaque(boolean)
public void updateUI()
UIManager
的关于外观 [L&F] 已更改的通知。用取自
UIManager
的最新版本 UI 对象替换当前的 UI 对象。
JComponent.updateUI()