问题标签 [jtableheader]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 自定义 JTable
再会。
如果可以根据需要更改 JLabel 和 JTextField 字体大小,是否也可以更改列名和 JTable 元素的字体样式(大小、外观、颜色)?
添加更多内容,我正在使用 Windows 的外观。
谢谢,
java - 居中 JTable 列标题时的外观问题
我正在使用以下代码:
在 JTable 列上:
并且外观不再与其他列标题匹配:
为什么?我该如何解决这个问题?
编辑
似乎 NetBeans 正在使用DefaultTableCellHeaderRenderer
来自package sun.swing.table;
我到处读到我不应该使用太阳包。Grrrr ......这没有帮助!
编辑 2
0verbose 的建议产生以下结果:
解决方案
根据 eugener 的建议,我将代码更新如下:
我明白了:
外观保留,列标题居中!!!(其他列标题也居中,但我可以通过对int row, int column
参数进行进一步测试来控制它)。
java - 如何在 Java 中构建自定义 JTable,在列名上方有一行
我正在使用 AbstractTableModel
创建一个简单的自定义表,像往常一样使用 String[] 作为列名,使用 Object[][] 作为JTable's
行中的内容。但是,我发现很难创建一个包含额外行的表(一个大单元格,跨越所有列的一般标题)在列名之前。有人有什么主意吗?
java - JTable 标题和间隔行
我是 Swing 的新手,今天一直在努力使用 JTable 组件。因为我正在尝试制作一张有点花哨的桌子,所以我还无法在任何地方找到我正在寻找的特定答案。
我想在表格的最顶部有一个“组”标题。这意味着跨越整个表的 3 或 4 行,并对各个列进行“分组”,实质上是对它们进行分区。
示例(请原谅眼睛疲劳):
其中斜杠(“/”)表示空格。第一个标题为“ANIMALS”,指的是表中的所有列。第二个标头向下划分 ANIMALS,依此类推。在第三个也是最后一个标题之后,我们到达了实际的表格,其中每一行将有 4 列,每种类型的 Animal 列。
显然这是一个例子,而且可能是一个糟糕的例子,但这就是我所说的“分区标题”的意思。
我的问题: 我看不到 JTableHeader 和 TableColumnModel 是如何支持这个功能的。如果他们这样做,有人可以将我推向正确的方向。如果他们不这样做,这肯定不会是 Swing 应用程序第一次需要这样的东西。任何人都知道的任何第 3 方组件?
另外,我希望能够在我的桌子上散布“Spacer”或 Spanning Rows,代表一组行。这些 Spacers 将存在于表内(不像标题那样位于表顶部),但会跨越每一列并具有单个标签,表示由后续行表示的组的名称。同样,我没有看到 Swing 支持这一点,有什么想法吗?
谢谢,我为真正糟糕的示例/绘图道歉。
java - 如何让 JTable 标题显示整个列名而不是缩短它们?
我有一个 JTable,我填充了一个扩展 AbstractTableModel 的类。问题是列太短而无法显示列名。我已关闭 Jtable AutoResizeMode 属性,但仍会发生缩短。我该如何解决这个问题?
uitableview - 在 UITableView 中插入/删除操作后隐藏 tableHeaderView
我有UITableView和UISearchBar位于tableHeaderView 我想保持标题视图不可见,直到用户向上滚动,所以我这样做:
我的问题是,在我执行任何插入或删除操作(我使用NSFetchedResultsController)后,UITableView 滚动到 0,0 并显示表头。
进行插入或删除操作后,有没有办法继续滚动?
java - 为 JTable 的一列正确调整标题的大小
我有一个有 3 列的表,并且希望第一个是所需的最小尺寸。标题是“级别”,似乎是 25-29 像素,具体取决于我使用的字体/操作系统。然而,表格标题在 Windows 上似乎需要至少 35 个,在 Mac 上至少需要 52 个才能在没有省略号的情况下显示它。我不知道为什么需要额外的空间(没有边框等)。
我终于发现以下内容将在 Windows (35) 上提供所需的大小,但在 Mac 上它返回 36,这还不够(很可能是由于排序箭头指示符位于文本旁边而不是上方)...
table.getTableHeader().getDefaultRenderer().getTableCellRendererComponent(null, table.getColumnModel().getColumn(0).getHeaderValue(), false, false, 0, 0).getPreferredSize().width
什么是独立于平台的正确方法?或者,在 Mac 上是否有一种方法可以计算所需的额外空间,这样我就不必对上述结果添加 15 个左右像素之类的东西进行硬编码?
java - JTable Swing中如何增加标题栏的Font?
我想知道如何增加 JTable Swing 中标题栏的字体大小?
我正在使用 Netbeans。
此致。
丹尼尔
java - Java:覆盖表格单元格渲染器,但具有默认背景和属性
如果您想添加自定义渲染器,通常,您要么扩展一些JComponent
(如JLabel
)并实现TableCellRenderer
,要么扩展DefaultTableCellRenderer
. 但是,无论哪种情况,我都发现单元格样式被完全覆盖。
我真正想要的是能够绘制默认的 L&F 背景,然后使用其他 L&F 默认值(如前景色和字体)在其上绘制。
所以,这就是我试图做的。首先,类:
然后我像这样覆盖单元格(标题)渲染器:
我基本上只是遵循这里的建议: TableCellRenderer, Part 2 - How To Create A Custom Renderer
如果我 return component
,它看起来好像我什么都没有覆盖。也就是说,我得到带有我用所选 L&F 背景和样式以及所有内容编程的标签的标题。 但是,当然,之后没有办法渲染我的东西。
另一方面,如果我返回this
,那么我将一无所获。Mac 原生 L&F 给了我一个白色的背景,而 Nimbus 给了我一个其他颜色的纯色。
我显然错过了一些东西。是否有其他方法Component
需要我覆盖并转发到原始方法?如果不通过覆盖,默认组件如何绘制paint
?(我也尝试过覆盖paintComponent
。没有区别。)
还有另一种方法可以做到这一点吗?我考虑过尝试将原生样式JPanel
放在其中,然后制作一个自定义(透明背景)组件作为它的子组件,尽管我不确定如何去做,而且我不确定我会得到无论如何,本机 L&F 表头背景。事实上,我非常怀疑我会得到原生标题样式,只是原生JPanel
样式。
基本上,我需要一个自定义表格标题(实际上,单元格也是单独的),但我想避免过多地与原生 L&F 混淆。
谢谢!