问题标签 [tablecelleditor]

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 回答
1161 浏览

java - TableCellRenderer 出现问题,尝试在 JTable Cell 中添加 JLabel(image)

这是我的一段代码-

在这一切工作正常但是 - 实际上,当 JTable 窗口打开时,如果我直接单击基于 JLabel(图像)的 Column ,那么图像会消失一段时间,表格将所选行返回为 -1。还有一点是,行选择也仅限于前一列。

准确地说,如果我的表有 4 列并且 Image(JLabel) 位于第 4 列,那么如果我直接单击图像或第 4 列,则行选择将发生到第 3 列,并将行选择返回为 -1 . 但是,如果我选择任何其他列,则一切正常并且工作正常。

0 投票
1 回答
859 浏览

java - JPanel 作为 TableCellEditor 消失

我制作了一个显示 JPanel 的自定义 TableCellRenderer。当 JPanel 包含交互元素时,我希望它们也能正常工作,所以我制作了一个自定义 TableCellEditor。它可以工作,但是单击 JPanel 时会出现一些奇怪的行为。有时,单击时 JPanel 会消失。当我只设置自定义渲染器时,根本没有问题,除了 JPanel 不是交互式的。所以问题一定出在TableCellEditor上。

编辑:

渲染器:

在主窗体中,我有下一个代码:

0 投票
2 回答
1202 浏览

java - 自定义 TableCellEditor 在添加时显示上一个条目

在下面的示例中,我有一个JTableaJList和两个JButtons(添加和删除)。当单击添加按钮时,列表中有 6 个项目(字符串),选定的值将添加到表中。
表中的字符串使用自定义渲染器(JPanel带有按钮和标签)显示。按钮的文本和标签的文本被更改为 String 的值。
一切顺利,直到编辑进入。编辑器使单击按钮成为可能,因此这是必要的。
当第一次将字符串添加到表中时,它会正确显示,行的高度会调整为面板的首选高度,并为按钮和标签设置文本。
当通过单击行然后单击删除按钮从表中删除条目时,一切都按预期进行。
现在问题来了:如果向表中添加一个(不同的)字符串,则行高是并且标签和按钮的文本没有设置(因为渲染器和编辑器都没有被调用,我已经检查过使用断点)。
当然,我确实希望使用自定义渲染器显示新行,但我该怎么做呢?

0 投票
3 回答
5023 浏览

java - How to do JTable on cellchange select all text

i have seen some example of doing it but i still can't understand and not able to implement it.

What i want to do is on cell change (focus), the next selected cell will have all the text selected, ready for user to totally change it..

Any ideas on how to do it ?

//update// somehow i managed to come out with the following class but

implement this
tblLayers.setDefaultEditor(String.class, new Classes.CellEditor());

yields nothing, the "Not supported yet." is NOT thrown ..

how should I solve this problem ?

0 投票
3 回答
9481 浏览

java - 使用 TableCellEditor 时,如何在鼠标单击位置获取组件?

我在表格单元格中使用了TableCellRenderer多个自定义。JFormattedTextField我使用与TableCellEditor. 现在我需要知道JFormattedTextField用户点击了什么,以及这个字段的位置(可以用 来完成viewToModel)。

使用自定义时,从鼠标单击中TableCellEditor获取 的唯一方法是 中的方法。给定在父母坐标系中。PointisCellEditable(EventObject e)CellEditorPoint

anEvent 在调用组件坐标系中。

但是我怎样才能在点击的坐标处获得组件呢?我已经尝试过,findComponentAt(Point p)但它会null为我返回。

这是我测试过的一些代码:

组件位置的editor.getLocation();值几乎给出了 y 坐标的随机值(例如,当使用表中的 5 行时)。

TableCellEditor使用 a和 a时如何获取用户单击的组件TableCellRenderer


这是一个完整的例子:

0 投票
1 回答
1034 浏览

java - 如何使用自定义 TableCellEditor 通过单击选择表格行?

我有一个JTablewith a customTableCellRenderer和一个 custom TableCellEditor。默认情况下,第一次单击表格行从渲染器切换到编辑器,第二次单击选择行。

有什么办法可以让我单击一下就选中行并切换到编辑器)?

我曾尝试使用:

在我的getTableCellEditorComponent但它不起作用,如果我将它添加到我的getTableCellRendererComponent它会起作用,但只是有时。

这是一个完整的例子:

0 投票
2 回答
754 浏览

java - 表模型监听器

我正在制作学生记录应用程序...我想要一个可编辑的列。我已在表上附加表模型侦听器,并在该列上保存所有更新值

table.cellEditAt自动调用表模型事件并产生无限循环......还有其他方法可以自动选择一个单元格进行编辑吗????

0 投票
1 回答
649 浏览

java - 如何通知 TableCellEditor 表格行被删除?

我尝试实现一个包含一些字段和一个删除按钮的 TableCellEditor。它工作得很好,但是当该行被删除时,被删除单元格中的内容(使用 TableCellEditor 呈现)不会更新。

当行被删除时,我尝试在模型中调用fireTableRowsDeleted(row, row)和调用fireTableDataChanged(),但它似乎没有通知 TableCellEditor。当我选择另一行时它起作用,并且行索引再次使用 TableCellRenderer 呈现。

有关如何在删除时通知 TableCellEditor 的任何建议?

  1. 按下删除按钮

    在此处输入图像描述

  2. 行已删除,但 CellEditor 内容未更新

    在此处输入图像描述

  3. 当再次使用 CellRenderer 时,行内容已更新。

    在此处输入图像描述

这是代码:

0 投票
1 回答
2191 浏览

swing - JTable中的JSlider

为了将 aJSlider放入JTable我写的 amAbstractCellEditor中,它实现了 aTableCellRenderer和 a TableCellEditor。它使用从 0 到 100 的值进行初始化。

我有一个奇怪的行为,当我第一次单击滑块时,它会跳到最大值。

第二个奇怪的行为:我添加了一个ChangeListener. 仅当我第一次单击滑块时才会调用此侦听器。第二次单击(也会更改值)不会导致此事件。为什么?

0 投票
2 回答
1805 浏览

java - 在单元格编辑器中调用操作后单元格不会更新

我正在使用带有单元格渲染器的表格,它允许我在每个单元格中放置一个带有值的按钮“x”,以便我可以通过按下按钮来删除单元格的值。单元格编辑器将动作侦听器分配给按钮,并在按下按钮时调用正确的动作。

作为 DefaultTableModel 的表模型中的每一列都由值的数组列表填充。我成功地通过按下按钮从数组列表中删除了正确的值,并且表中的每个其他单元格在更改后刷新,但被删除值的单元格保持不变。如果我重新启动应用程序或向数组列表添加一个值,则表会按预期刷新,并且一切看起来都应该如此。

那么问题是,单元格渲染器似乎不会忘记单元格的初始值,因此即使重新绘制表格,仍会继续将此值打印到单元格中。有谁知道我如何正确刷新表格以便正确显示值?

表类:

单元格编辑器类:

提前致谢