问题标签 [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.

0 投票
1 回答
785 浏览

java - 自定义 JTable

再会。

如果可以根据需要更改 JLabel 和 JTextField 字体大小,是否也可以更改列名和 JTable 元素的字体样式(大小、外观、颜色)?

添加更多内容,我正在使用 Windows 的外观。

谢谢,

0 投票
2 回答
2452 浏览

java - 居中 JTable 列标题时的外观问题

我正在使用以下代码:

在 JTable 列上:

并且外观不再与其他列标题匹配:

在此处输入图像描述

为什么?我该如何解决这个问题?

编辑

似乎 NetBeans 正在使用DefaultTableCellHeaderRenderer来自package sun.swing.table;

我到处读到我不应该使用太阳包。Grrrr ......这没有帮助!

编辑 2

0verbose 的建议产生以下结果:

在此处输入图像描述

解决方案

根据 eugener 的建议,我将代码更新如下:

我明白了:

在此处输入图像描述

外观保留,列标题居中!!!(其他列标题也居中,但我可以通过对int row, int column参数进行进一步测试来控制它)。

0 投票
2 回答
2410 浏览

java - 如何在 Java 中构建自定义 JTable,在列名上方有一行

我正在使用 AbstractTableModel创建一个简单的自定义表,像往常一样使用 String[] 作为列名,使用 Object[][] 作为JTable's行中的内容。但是,我发现很难创建一个包含额外行的表(一个大单元格,跨越所有列的一般标题)在列名之前。有人有什么主意吗?

0 投票
4 回答
2439 浏览

java - JTable 标题和间隔行

我是 Swing 的新手,今天一直在努力使用 JTable 组件。因为我正在尝试制作一张有点花哨的桌子,所以我还无法在任何地方找到我正在寻找的特定答案。

我想在表格的最顶部有一个“组”标题。这意味着跨越整个表的 3 或 4 行,并对各个列进行“分组”,实质上是对它们进行分区。

示例(请原谅眼睛疲劳):

其中斜杠(“/”)表示空格。第一个标题为“ANIMALS”,指的是表中的所有列。第二个标头向下划分 ANIMALS,依此类推。在第三个也是最后一个标题之后,我们到达了实际的表格,其中每一行将有 4 列,每种类型的 Animal 列。

显然这是一个例子,而且可能是一个糟糕的例子,但这就是我所说的“分区标题”的意思。

我的问题: 我看不到 JTableHeader 和 TableColumnModel 是如何支持这个功能的。如果他们这样做,有人可以将我推向正确的方向。如果他们不这样做,这肯定不会是 Swing 应用程序第一次需要这样的东西。任何人都知道的任何第 3 方组件?

另外,我希望能够在我的桌子上散布“Spacer”或 Spanning Rows,代表一组行。这些 Spacers 将存在于表内(不像标题那样位于表顶部),但会跨越每一列并具有单个标签,表示由后续行表示的组的名称。同样,我没有看到 Swing 支持这一点,有什么想法吗?

谢谢,我为真正糟糕的示例/绘图道歉。

0 投票
3 回答
21520 浏览

java - 如何在 JTable 的 JTableHeader 中放置控件?

给定JTable带有 type 列的 a Boolean.class默认渲染器是 a JCheckBox。根据用户选择选择单个单元格很容易,但也可以方便地选择所有复选框或不选择任何复选框。这些最近的 例子在表头中提到了使用JCheckBox,但实现起来很笨拙且没有吸引力。如果我不需要对列进行排序,如何在JTableHeader?

附录:为方便起见,我已将我的sscce添加为answer,但我很乐意接受一个解决问题表现良好方面的答案。

0 投票
3 回答
2067 浏览

java - 如何让 JTable 标题显示整个列名而不是缩短它们?

我有一个 JTable,我填充了一个扩展 AbstractTableModel 的类。问题是列太短而无法显示列名。我已关闭 Jtable AutoResizeMode 属性,但仍会发生缩短。我该如何解决这个问题?

0 投票
1 回答
629 浏览

uitableview - 在 UITableView 中插入/删除操作后隐藏 tableHeaderView

我有UITableViewUISearchBar位于tableHeaderView 我想保持标题视图不可见,直到用户向上滚动,所以我这样做:

我的问题是,在我执行任何插入或删除操作(我使用NSFetchedResultsController)后,UITableView 滚动到 0,0 并显示表头。

进行插入或删除操作后,有没有办法继续滚动?

0 投票
1 回答
507 浏览

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 个左右像素之类​​的东西进行硬编码?

0 投票
3 回答
10356 浏览

java - JTable Swing中如何增加标题栏的Font?

我想知道如何增加 JTable Swing 中标题栏的字体大小?

我正在使用 Netbeans。

此致。

丹尼尔

0 投票
2 回答
6588 浏览

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 混淆。

谢谢!