问题标签 [tablecellrenderer]
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,我想在选择一个单元格时更改该单元格的整行和整列的背景(而不是仅更改单元格的背景!),该怎么做?
请指教,谢谢。
java - 为什么我在 Java 中收到“找不到符号”错误?
我在指示的行中遇到错误。它说“找不到符号”,但我无法意识到真正的问题是什么。
更新
@martinusadyh
恐怕这个类太大,所以它不允许我把它贴在这里。
@充满鳗鱼的气垫船
这是 Netbeans
http://i.stack.imgur.com/R4fv3.jpg中的错误
@亨利
这不是我的课。我只是实现一个接口方法。
java - 具有自动高度的多行 JTable 单元格 - 第一行超大
我正在使用 Swing 开发 Java 桌面应用程序 (jdk1.6)。我的问题是关于 JTable 中具有自动调整单元格高度属性的多行单元格(文本换行)。
我已经可以通过这种方式实现这个结构:
- 表有自己的单元格渲染器。
- 单元格是 wraptext=true 的 JTextArea
- 在将文本插入单元格后,我计算 JTextArea 中的行数,并相应地调整相关行的行高。
- 单元格宽度会自动调整。(从首选尺寸)
关于这个结构的2个问题:
1)在程序执行过程中,可以统计行数并适当调整行高。
但是在第一次初始化(第一次 setModel())时,它计算的表的“第一个单元格”的行数,即 (0,0),比它要多得多。我调试了代码,发现它计算了文本中的字母并乘以行高 16。(好像单元格的宽度是 1 个字母)。最后我得到一个非常高的第一排。其他行没问题。
当我不向 (0,0) 插入任何文本时,不会出现问题。
2) 当我禁用表格自动调整大小属性并手动确定单元格宽度时,行数不起作用。
这是我的单元格渲染器:
}
这里我如何计算行数:
----------------------------------
我将行调整代码删除到课堂之外。该表现在有一个模型侦听器。这次第一行不是特别大。调用此方法有效,但问题在于计算换行的行数。每次我用很长的文本填充单元格时,该行都会正确换行,但我的计数器返回 1。(上面的代码是 Wrappedline 计数器。与渲染器中的相同。但在那里工作得很好)
这是我的模型监听器:
}
打印线的结果:
- preferredHeight: 15 // 来自换行函数
- lineHeight: 15 // 来自换行函数
- 小时正常:25
- 行数:1
- value:looooooooooooooooooooooonng tessssssssssssssssssssssst // 看起来是 2 行
- 宽度:104
提前致谢 :)
伊西尔
java - TableCellRenderer 出现问题,尝试在 JTable Cell 中添加 JLabel(image)
这是我的一段代码-
在这一切工作正常但是 - 实际上,当 JTable 窗口打开时,如果我直接单击基于 JLabel(图像)的 Column ,那么图像会消失一段时间,表格将所选行返回为 -1。还有一点是,行选择也仅限于前一列。
准确地说,如果我的表有 4 列并且 Image(JLabel) 位于第 4 列,那么如果我直接单击图像或第 4 列,则行选择将发生到第 3 列,并将行选择返回为 -1 . 但是,如果我选择任何其他列,则一切正常并且工作正常。
java - JPanel 作为 TableCellEditor 消失
我制作了一个显示 JPanel 的自定义 TableCellRenderer。当 JPanel 包含交互元素时,我希望它们也能正常工作,所以我制作了一个自定义 TableCellEditor。它可以工作,但是单击 JPanel 时会出现一些奇怪的行为。有时,单击时 JPanel 会消失。当我只设置自定义渲染器时,根本没有问题,除了 JPanel 不是交互式的。所以问题一定出在TableCellEditor上。
编辑:
渲染器:
在主窗体中,我有下一个代码:
java - 检查何时从 JTable 中删除组件
我有一个使用自定义渲染器/编辑器保存多个 JPanel 的 JTable。JPanel 监听另一个对象的变化。现在,当我从 JTable 中删除行时,JPanel 仍然存在于对象的侦听器列表中,因此 JPanel 不会被破坏。
以前我在另一个 JPanel 中显示了 JPanel,因此当对象被删除时,我可以添加一些代码以在其 removeNotify() 方法中取消注册侦听器。
当 JPanel 位于 JTable 中时,removeNotify() 技巧不起作用,因为它会不断地被删除并重新添加到表的渲染器/编辑器中。我尝试使用 addNotify() 将 JPanel 添加为侦听器,但不知何故它没有从侦听器列表中删除。那么我怎样才能做到这一点尽可能干净呢?
我如何向表中添加行:
自定义面板如何注册为监听器:
事件如何抛出:
java - 自定义 TableCellEditor 在添加时显示上一个条目
在下面的示例中,我有一个JTable
aJList
和两个JButton
s(添加和删除)。当单击添加按钮时,列表中有 6 个项目(字符串),选定的值将添加到表中。
表中的字符串使用自定义渲染器(JPanel
带有按钮和标签)显示。按钮的文本和标签的文本被更改为 String 的值。
一切顺利,直到编辑进入。编辑器使单击按钮成为可能,因此这是必要的。
当第一次将字符串添加到表中时,它会正确显示,行的高度会调整为面板的首选高度,并为按钮和标签设置文本。
当通过单击行然后单击删除按钮从表中删除条目时,一切都按预期进行。
现在问题来了:如果向表中添加一个(不同的)字符串,则行高是并且标签和按钮的文本没有设置(因为渲染器和编辑器都没有被调用,我已经检查过使用断点)。
当然,我确实希望使用自定义渲染器显示新行,但我该怎么做呢?
java - JTableHeader 表头单元格边框
我正在使用这段代码:
我想为每个单元格添加边框tableheader
。有什么方法可以做到这一点吗?
java - JTable 属性在运行时更改
如何在运行时更改 JTable 中的特定单元格属性。如果特定单元格是名称,则意味着我需要更改字体大小、字体样式等。
如果我单击特定单元格进行编辑,我需要更改该文本的字体大小、字体样式等。
这个怎么做
swing - JTable中的JSlider
为了将 aJSlider
放入JTable
我写的 amAbstractCellEditor
中,它实现了 aTableCellRenderer
和 a TableCellEditor
。它使用从 0 到 100 的值进行初始化。
我有一个奇怪的行为,当我第一次单击滑块时,它会跳到最大值。
第二个奇怪的行为:我添加了一个ChangeListener
. 仅当我第一次单击滑块时才会调用此侦听器。第二次单击(也会更改值)不会导致此事件。为什么?