Java 如何在JTable自定义呈现程序中使用HTML
在我的JTable单元格中使用HTML时,它将显示为Java 如何在JTable自定义呈现程序中使用HTML,java,html,swing,jtable,renderer,Java,Html,Swing,Jtable,Renderer,在我的JTable单元格中使用HTML时,它将显示为 <html><b>Example</html></b> 示例 而不是使用正确的html样式。我了解到默认渲染器处理html文本。如何更改自定义渲染器以正确显示HTML 我的Jtable: tab_months = new JTable(tabmod_months) { @Override public Component prepareRenderer(Table
<html><b>Example</html></b>
示例
而不是使用正确的html样式。我了解到默认渲染器处理html文本。如何更改自定义渲染器以正确显示HTML
我的Jtable:
tab_months = new JTable(tabmod_months) {
@Override public Component prepareRenderer(TableCellRenderer renderer,
int row,
int col){
Component c = super.prepareRenderer(renderer, row, col);
int selCol = tab_months.getSelectedColumn();
int selRow = tab_months.getSelectedRow();
if ( selCol != -1 && selRow != -1 ){
if (row == selRow){
c.setBackground(new Color(163,198,255));
} else {
c.setBackground(new Color(255,240,245));
}
}
if (row>=0 && row<listOpenmonths.size()+1) {
setToolTipText(listOpenmonths.get(row).getmonthsString());
}
return c;
}
};
tab_months=新的JTable(tabmod_months){
@重写公共组件prepareRenderer(TableCellRenderer,
int row,
整数(col){
组件c=super.prepareRenderer(渲染器、行、列);
int selCol=tab_months.getSelectedColumn();
int selRow=tab_months.getSelectedRow();
如果(selCol!=-1&&selRow!=-1){
如果(行==selRow){
c、 挫折背景(新颜色(163198255));
}否则{
c、 挫折背景(新颜色(255240245));
}
}
如果(row>=0&&row发现问题:我的html标记在字符串中,无法识别…更改了字符串格式,它正常工作了。谢谢!html在Swing中仅提供基本支持(好的,支持诸如、span、div和tables等标记,但不支持css功能)。因此,您无法使用大多数样式功能。但是,当您扩展JPanel并实现TableCellRenderer
界面时,您可以编写自己的渲染器。在这种情况下,您可以使用Swing布局选项对数据进行样式设置。如何更改自定义渲染器以正确显示HTML?
-您不需要执行任何操作。默认设置为JTable的NDER是一个JLabel。JLabel知道如何显示基本的HTML。使用粗体标记对我来说很好。发布你的文章来演示这个问题。因此,从创建一个带有标准JTable的JFrame开始,并将你的HTML字符串添加到TableModel中。让它工作起来。然后尝试用你的自定义代码自定义类。如果它停止工作,你可以知道您更改了什么以及问题所在。这样您就可以在问题中包含更多信息。@SergiyMedvynskyy“但没有css功能”Swing HTML呈现引擎只支持有限数量的css,但它确实支持一些css。