我正在尝试呈现jtable的特定行(它应该具有不同的背景色,并且应该具有粗体字符)。
我发现了几个有关如何实现自定义的问题TableCellRenderer
,以及有关如何使用表以及本教程(表行渲染)的问题。
我正在使用JInternalFrame
来显示JTable
。我尝试实现两种解决方案,但都getCellRenderer
没有实现prepareRenderer
。调试时,可以看到正在创建新的jtable,但是没有调用方法中的断点。
我的代码如下:
this.add(createData(model));
private JComponent createData(ProfitLossTableModel model) {
JTable table = new JTable(model) {
public TableCellRenderer getCellRenderer(int row, int column) {
if ((row == 0) && (column == 0)) {
DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();
renderer.setHorizontalAlignment(JLabel.RIGHT);
renderer.setBackground(Color.red);
return renderer;
} else {
return super.getCellRenderer(row, column);
}
}
};
table.setPreferredScrollableViewportSize(table.getPreferredSize());
table.changeSelection(0, 0, false, false);
table.setAutoCreateRowSorter(true);
return new JScrollPane(table);
}
如您所见,模型是我对的实现AbstractTableModel
。
当然,我缺少了一些东西。我试图打电话repaint()
看看是否发生了什么,但是什么也没发生。
我还尝试将JPane放入我的JInternalFrame中,然后将JScrollPane添加到其中,但也没有发生任何事情。
有什么帮助吗?
TIA,
鲍勃
正如“
概念:编辑器和渲染器
”中所讨论的,“表调用表模型的getColumnClass
方法,该方法获取列单元格的数据类型。”
您应该验证您的实现是否AbstractTableModel
返回了合适的值,如本示例中所示。
附录:
我正在尝试呈现一行,而不是一列。
罗布·卡米克(Rob Camick)的“
表行渲染”
方法可以替代此方法prepareRenderer()
。
tabbedPane.addTab("FirstRow", createFirstRow(model));
...
private JComponent createFirstRow(DefaultTableModel model) {
final Font font = new Font("Serif", Font.BOLD, 14);
JTable table = new JTable(model) {
public Component prepareRenderer(
TableCellRenderer renderer, int row, int column) {
Component c = super.prepareRenderer(renderer, row, column);
if (!isRowSelected(row)) {
c.setBackground(row == 0 ? Color.yellow: getBackground());
c.setFont(row == 0 ? font : getFont());
}
return c;
}
};
table.setPreferredScrollableViewportSize(table.getPreferredSize());
table.changeSelection(1, 1, false, false);
return new JScrollPane(table);
}
字体始终显示默认字体。 我的字体存储在资源/字体中。我尝试使用其他字体,并对字体进行重新编码。此外,PixlUI库并没有解决这个问题。 主要活动。Java语言 activity\u main。xml
这应该很简单。我修改了项目的web.xml,以便显示我自己的500错误页面: 然后我写了最简单的servlet来测试它: 然后完全忽略自定义页面(位于根目录),而是获得默认的 Tomcat 错误页面。 我使用的是MyEclipse调试器附带的Tomcat 6版本。我已经三重检查了拼写错误,但我找不到任何异常。我想知道错误页面标签是否需要在文档的某个部分。有谁知道可能出了什么问题? *编辑:这是请求
我在Angular中有一个自定义验证的表单构建器,但我在自定义验证中读取文件后无法获取文件的类型。 下面是StackBlitz: https://stackblitz.com/edit/Angular-ivy-atwqqc?file=src%2fapp%2fapp.component.ts TS文件
问题内容: 我已经创建了一个UserType(请参见下文)来处理mySQL数据库中的一种情况,在该情况下我们将空日期保存为0000-00-00 00:00:00。 当我尝试使用dispDT的null持久化我的实体时(请参见下文),它将生成以下异常:“ javax.persistence.PersistenceException:org.hibernate.PropertyValueExceptio
我正在尝试设置Oracle Forms,以便从两个不同的目录交付两个表单。为此,我将表格放在以下位置 APP1:/oracle/weblogic/middleware/as_1/forms_APP1 APP2:/oracle/weblogic/middleware/as_1/forms_APP2 然后将“formsweb.cfg”文件设置为“app1”和“app2”使用2个环境文件。在app1中。
我已经在带有TableCellRenderer的JTable中添加了一个带有JLabel的图片。但是,当鼠标移动到单元格上时,如何在特定的列和行上为JLabel添加边框呢? 这是第一个呈现器类: 这是第二个呈现器类: 这就是我在JTable中设置鼠标输入和鼠标单击的方式: 但当鼠标移动到第6列的一个单元格时,这会为该列中的所有单元格添加一个边框。当鼠标进入特定的行和列时,如何将它只变成特定的行和列