问题标签 [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 投票
2 回答
7647 浏览

java - 开始在 JTable 中的单元格中进行编辑以获得焦点

我以以下方式为表中的两列定义了单元格编辑器:

Java 代码:

我面临的问题是,当焦点移动到表格单元格时,该单元格不会自动编辑。因此,当焦点移到第 2 列(具有作为编辑器的文本字段)时,插入符号不会出现,除非双击单元格或用户开始输入。与第 1 列(有一个组合框作为编辑器)的情况类似,因为这里组合框不会出现,除非单击单元格。这些行为是违反直觉的,对于使用键盘操作的用户来说是不可取的。:(

请就如何解决此问题提出建议。

提前致谢。

0 投票
2 回答
55952 浏览

java - 如何使用自定义 JTable 单元格编辑器和单元格渲染器

我创建了一个带有自定义表格渲染和自定义单元格编辑器的 JTable,它在图像中给出了结果

在此处输入图像描述

我使用扩展 JPanel 的单独类创建了第一个表格单元格中显示的面板。并将表值添加为,

这是我创建此表的表自定义类,

我的问题是我认为面板按预期显示我无法在文本字段中输入或更改复选框或单击按钮。请告诉我如何解决这个问题。

0 投票
1 回答
573 浏览

java - 带有不更新值的对话框的 TableCellEditor

我正在JTable使用自定义单元格编辑器编写一个对话框,该对话框允许用户在第二个表中编辑更多值。问题是,第二张表的变化并没有反映在第一张表中,基本上丢失了。我使用此处提供的示例作为指南。这是CellEditor

这是SizeClassEditor

0 投票
1 回答
1701 浏览

java - Swing 依赖组件和事件系统

我必须用 Swing 在 JAVA 中构建一个复杂的 GUI(目前我有近 80 个类)。应用程序的图形部分拆分如下:第一个选项卡系列(例如“管理”、“管理”、“配置”),然后是第二个级别(例如,“用户”、“组”、“游戏” )。现在我有两个年级(每个级别的标签一个)。下一个级别是管理业务对象的 JPanel(我的整个 GUI 是围绕我的业务模型构建的),在这个级别有 2 种类型的 JPanel:谁管理简单对象(例如,“用户”、“类别”、“游戏” ”,“级别”)和管理对象的“复合主键”(例如“User_Game”,它代表所有用户的每个游戏级别的复式表的形式)。我的第二级选项卡可以包含多个 JPanel。当我的 JPanel 管理单个对象时,它由一个 JTable 和两个按钮(添加和删除)组成,我在上面放置事件,如果不是,它就是一个简单的 JTable。当我有外键(例如“用户”的“组”和“游戏”的“类别”或“用户游戏”的“级别”)时,它是一个直接从 JTableModel 获取其信息的 JComboBox。在管理 JTable 对象以“复合主键”时,列和行也直接依赖于模型(例如“Game”和“User”“User_Game”)。每个都有自己的 JTable 模型来处理持久层(用于信息的 Hibernate)和其他 TableModel。要管理更改(例如添加、修改或删除“用户”),我使用以下代码:

以及以下动作:

此代码运行良好,数据保存良好。然后我添加这段代码来刷新依赖组件:

我的 TableModel.fireTableDataChanged 重建 JTable 内容(调用 super.fireTableDataChanged 和 fireTableStructureChanged),JTable.repaint 重置了渲染器,它适用于 Combobox(外键)并且它更新了复式表上的标题,但它不能添加或删除复式表中的列或行。此外,如果有最轻微的变化,我会看到更高的延迟。

我的问题很简单:你如何管理相互依赖的组件?

为了您的帮助,提前,谢谢。

编辑:这里是 TableCellEditor 的一个例子。

TableModel 的一个例子:

表的一个例子:

我希望它能帮助你理解:/

0 投票
1 回答
433 浏览

java - Getting Value of JTable Cells

I have this JTable of 3 columns and of variable rows. The user can edit the value of any of the cells (because the cells are selectable) and hit enter. Once s/he presses "SAVE", I then get every cell's value, and combine them into a single string, with each cell's value separated by a pipe ( | ). eg ( Col1|Col1|Col1|Col2|Col2|Col2| ) So far, so good.

The thing is, although this string conversion method works, when the user changes the value of the cells in the table, the code still gets the OLD value of the cells of the JTable. Follow me so far? I'm not sure how I can remedy this. Here's the code below, just in case it is required. (I realize my StringBuffer is something I should learn to move away from)

Thanks for reading - got any ideas?

0 投票
1 回答
4398 浏览

java - 将 RadioButton 组添加到 JTable

我正在设计一个考勤系统,为此我使用 JTable 列出学生并根据他们的姓名标记出勤率。我在 Jtable 列中添加了一个 RadioButton 组,我的代码如下:-

上面的代码正在运行,我将一组单选按钮作为第 4 列。

我正在向表中动态添加行,将默认选择的 RadioButton 设置为“4”。

我的问题:-

假设用户选择一个班级/部分来标记学生出勤率,并且学生列表(比如说表中的 10 行)通过上面的 RadioButtons 面板动态生成。现在,当用户选择另一个只有 3 行学生的班级/部分时,会引发以下异常:-

据我了解,无论是否删除了所有行并输入了新行,表格都会以某种方式保留单选按钮值并将其应用于新的 jtable(当用户选择另一个部分/类时)。当所选类/部分的行数少于其先前选择的类/部分表时,也不会引发上述异常。

有没有办法在每个类/部分调用上重置 tablecellrenderer 或 tablecelleditor (因为我正在重置 tablemodel 数据)?

请帮我。

0 投票
3 回答
2946 浏览

java - 我可以在输入时清除 JTable 中的文本吗?

我可以让我的 textFieldJTableExcel中的单元格一样吗?输入时清除文本,但进入单元格时可以编辑。

我认为这两个操作将发生在同一个事件中。我错了吗?

我尝试使用keyPressed但没有任何效果。TT-TT

这是我的代码

有什么建议吗?

0 投票
1 回答
395 浏览

java - 在 JTable 中自动添加一些文本

JTable中的textField可以自动添加一些文本吗?(没有 JavaScript)

就像当用户键入 2 位数字或从该字段失去焦点时为“时间”自动添加冒号(:)。

我尝试使用一些 invokeLater()、KeyListener() 和 editCellAt(),它仅在我进入该字段(双击和 F2)时才起作用,但如果我只单击并键入则不起作用。

0 投票
3 回答
967 浏览

java - java类的大小会影响应用程序的性能吗

我正在做一个基于摇摆的应用程序,我使用JTable. 我用于DefaultCellEditor需要组合框选择的列之一。但是DefaultCellEditor有很多我不需要的方法。AbstractCellEditor因此,我通过扩展仅实现所需方法的位置来编写自定义 CellEditor 。我的问题是

(一般来说)如果我们有一个类并且如果我们不需要该类的所有方法是可以使用它还是编写一个只实现我们需要的那些方法的自定义类是好的?和

通过使用自定义类,应用程序的性能(内存方面)会得到改善还是与具有所有方法的类保持一致?

任何帮助将不胜感激。

0 投票
2 回答
6918 浏览

java - 简单快速的 JTree 单元格编辑器

我有一个带有自定义 TreeModel 和自定义 TreeRenderer 的 JTree。树模型包含一堆不同类型的对象。其中一种类型的显示方式与其他类型不同: 显示的文本是对象的两个字段的串联。当我编辑单元格时,我想用编辑后的文本更新这些字段之一。到目前为止,我让它工作得很好。

我的问题:当编辑时显示的文本是 2 个字段的完整连接值时,即使您实际上只是在编辑其中一个字段,也会令人困惑。所以我只想在用户开始编辑时显示您正在编辑的一个字段的内容。

我试图用一个自定义的 CellEditor 来做到这一点,我看到了它应该工作的方式,在我的情况下,这种方法似乎有点矫枉过正。我只想在多种情况下更改显示的文本,所以我自然想实现它,而不是整个 CellEditor 用于我的 Tree 的全部内容。

有没有更快更简单的方法来做到这一点,还是我必须使用自定义编辑器?

谢谢