JCombobox 字符串项(可见)和整数键(固有)
我有一个数据库模式 = 它将作为 JTable 列显示在 JCombobox 中以选择名称。但我希望将 ID 字段插入(作为外键)到另一个表中。
通常,在下拉列表中选择一个项目,将所选项目带到组合框的显示区域。
我想要做的是,当选择组合框中的任何项目(字符串)时,其相应的整数键(可以保存在排序映射中)应显示在组合框占位符区域中,以便在获取 JTable 的值时。 getValueAt(row, column),我得到的是整数键,而不是字符串项值。 请帮助我我该怎么做?
I have a database schema = which will be shown in a JCombobox as a JTable column to select a name. But I want the ID field to insert (as a foreign key) in another table.
Usually, selecting an Item in drop down, bring the selected item to the shown area of the combo box.
What I want to do is, when select any item (string) in the combo box its corresponding integer key (can be kept in a sorted map) should be shown in the combobox placeholder area, so that when take the value of the JTable.getValueAt(row, column), I get the integer key, not the string item value.
Please help me how can I do that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您应该在 TableModel 中存储一个对象,该对象包含要显示的字符串值和键的整数值。然后您访问 table.getValueAt(...) 您可以访问包含这两条信息的对象。
以下是独立组合框的示例:
You should store an Object in the TableModel that contains both the string value to display and the Integer value for the key. Then you you access table.getValueAt(...) you have access to the object which contain both pieces of information.
Here is an example for a standalone combo box:
我有一个很棒且聪明的解决方案:
我使用带有自定义对象的向量为
rolComboBox
设置模型,resultSet
对象包含数据库中的所有数据。当我想从
comboBox
获取 id 时,使用方法getSelectedItem
获取它。I have a great and smart solution:
I set model for
rolComboBox
with a Vector with custom Object, theresultSet
object contain all data from Data Base.After when i want get the id from the
comboBox
get it with the methodgetSelectedItem
.因为没有自动的方法来做到这一点:(。
我正在使用地图来保存我的价值观和密钥。
获取所有类别(键、值)并填充地图和组合
我的 JTable 的第四列应该是组合框,
当编辑组合框中的值时,它会显示文本,但为了更新数据库表中的值我必须获取整数密钥。
对于数据库更新,
这里是 getKeyForValue,
Since there is no automatic way to do it :(.
I am using a Map to keep my values and key.
Get all the categories (key, value) and populate the map and combo
The fourth column of my JTable should be combobox,
When editing the value in the combobox, it show the text, but for updating the value in the database table I have to get the integer key.
For database update,
And here is the getKeyForValue,