单击单元格之前表中的 Java JComboBox 不显示

标签 java swing jtable jcombobox

好的,我已经有了一个表设置,其中我将 JComboBox 添加到特定单元格,就像示例 here 中所做的那样,但由于某种原因,在选择该单元格之前组合框不会显示。如果我选择该单元格,组合框将打开它的列表供我选择。无论我是否更改选择,如果我单击表中的另一个单元格,它都会显示从组合框中选择的项目的文本,就好像它是根据需要在表中显示的简单字符串一样。

我的问题是:如何让它在 JComboBox 中显示所选值,而不必先选择单元格?

编辑:我忘记提到的一件事是;不像以前那样预先声明 DefaultTableModel 数据,而是稍后使用 model.addRow();

将项目添加到 DTM 中

最佳答案

这是正常行为。表格使用渲染器和编辑器。单元格的默认渲染器只是一个 JLabel,因此您看到的只是文本。当您单击单元格时,将调用编辑器,以便您看到组合框。

如果您希望单元格看起来像组合框,即使它没有被编辑,那么您需要为该列创建一个组合框渲染器。

阅读 Swing 教程中关于 Using Custom Renderers 的部分了解更多信息。

关于单击单元格之前表中的 Java JComboBox 不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15013504/

相关文章:

java - 将 Java 版本发送到文本文件

java - 在jpa实体中使用json字段(实现hibernate UserType)

java - 通过鼠标单击而不是 setLocation 绘制每个矩形

Java ActionListener 操作未执行

java - Component.getWidth() 在不同的上下文中返回 0

Java CSVReader 跳过行以及如何转换 csv

java - sqlite,地理坐标索引?

Java ComboBox 与 arraylist 的关联

java - 我正在尝试使用 Java 在 Eclipse 中设置背景图像

java - 如何将新的数据行添加到我的 Derby 数据库中?