java-如何将我的JTable中第一行的颜色设置为任何颜色,并在表中保留先前设置的颜色
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-如何将我的JTable中第一行的颜色设置为任何颜色,并在表中保留先前设置的颜色,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1607字,纯文字阅读大概需要3分钟。
内容图文
我已经阅读了很多有关Java中CellRendering的知识,并且还从这个很棒的站点访问了其他Q& A.不幸的是,我仍然没有找到以下问题的解决方案:
我想呈现一个显示StatusEvents的JTable-这对于监视正在运行的系统是必需的.但是,这些StatusEvents由时间戳,文本和颜色组成.
我的目标是启用多个彩色行.为了实现这一点,我已经定义了一个新的JTable子类(在Inseration过程中重载了与正在绘制的Row相关的“ getCellRenderer”)和一个新的TableCellRenderer-Subclass,该子类将Color应用于单元格.
方法如下所示:
MyCustomJTable:
@Override
public TableCellRenderer getCellRenderer(int row, int column) {
TableCellRenderer result = super.getCellRenderer(row, column);
if ( row == 0 )
{
result = colcr;
}
return result;
}
colcr是我的自定义CellRenderer,它以以前设置的特定颜色为Cell着色.
新的Cell Renderer外观如??下:
public class ColorCellRenderer extends DefaultTableCellRenderer {
ColorCellRenderer ( )
{
this.m_Color = null;
}
@Override
public Component getTableCellRendererComponent ( JTable table , Object value , boolean isSelected ,
boolean hasFocus, int row, int column)
{
Component c = super.getTableCellRendererComponent
(table, value, isSelected, hasFocus, row, column);
if ( m_Color != null )
{
if ( row == 0 && column == 0)
{
c.setForeground(m_Color);
}
}
return c;
}
public void setColor ( Color c )
{
this.m_Color = c;
}
private Color m_Color;
}
不幸的是,当前解决方案仅使用最新配置的颜色为第一行着色,但是先前着色的行会丢失其颜色并默认进行格式化.
我有什么可能避免这种行为?
诚挚
马库斯
解决方法:
您必须保留渲染器随时在指定位置应用预期颜色所必需的状态. Swing不会为您记住颜色.
您可能想要从表中显示的StatusEvents派生颜色.在这种情况下,您必须阅读渲染器中的状态并应用相应的颜色.
内容总结
以上是互联网集市为您收集整理的java-如何将我的JTable中第一行的颜色设置为任何颜色,并在表中保留先前设置的颜色全部内容,希望文章能够帮你解决java-如何将我的JTable中第一行的颜色设置为任何颜色,并在表中保留先前设置的颜色所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。