Java组合框摆动[关闭]

2023-12-10

我的表有两个字段:

 ProductID  (Primary Key)
 ProductName  (duplicate values will be present)

我已经脸红了productName进入上表中的组合框。

当用户选择一个Item从产品列表中Ccombobox。我需要获取所选产品对应的ID。

try {
    Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/kart","root","");
    PreparedStatement statement=connection.prepareStatement("SELECT product_name,product_id from allproducts");
    ResultSet result = statement.executeQuery();

    while(result.next()){
        combo.add(result.getString(1));
    } 
} catch (SQLException ec) {
    System.out.println("Connection Failed! Check output console");
    ec.printStackTrace();
    return;
}

您的问题有些不完整,但我的猜测是您的 JComboBox 中填充了 String。如果是这样,您可能会更好地使用将 ProductID 与 ProductName 结合在一起的自定义类的对象来填充 JComboBox(或者更好的是它的模型)。要让组合框显示名称,您需要为您的类提供一个返回名称的 toString() 方法,或者为您的组合框提供一个显示名称的单元格渲染器。


Edit
例如,创建一个类 MyComboItem,为其提供两个从数据库中填充的字符串字段,为其提供一个toString()显示产品名称的方法,并用此类型的项目填充您的 JComboBox:

class MyComboItem {
   private String productId;
   private String productName;

   public MyComboItem(String productId, String productName) {
      this.productId = productId;
      this.productName = productName;
   }

   public String getProductId() {
      return productId;
   }

   public String getProductName() {
      return productName;
   }

   @Override
   public String toString() {
      return productName;
   }
}

Edit 2

可以像这样使用:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.DefaultComboBoxModel;
import javax.swing.JComboBox;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;

public class ComboItemTest {
   public static void main(String[] args) {
      DefaultComboBoxModel<MyComboItem> comboModel = 
              new DefaultComboBoxModel<MyComboItem>();

      // note that here you would fill the model with data from your database ***
      comboModel.addElement(new MyComboItem("x1234A", "Product 1"));
      comboModel.addElement(new MyComboItem("x1235A", "Product 2"));
      comboModel.addElement(new MyComboItem("x1236A", "Product 3"));
      comboModel.addElement(new MyComboItem("x1237A", "Product 4"));
      comboModel.addElement(new MyComboItem("x1238A", "Product 5"));
      comboModel.addElement(new MyComboItem("x1239A", "Product 6"));

      final JComboBox<MyComboItem> combobox = new JComboBox<MyComboItem>(comboModel);

      combobox.addActionListener(new ActionListener() {

         @Override
         public void actionPerformed(ActionEvent e) {
            MyComboItem item = (MyComboItem) combobox.getSelectedItem();
            if (item != null) {
               System.out.printf("You've selected Product Name: %s, Product ID: %s%n", 
                     item.getProductName(), item.getProductId());
            }
         }
      });

      JOptionPane.showMessageDialog(null, new JScrollPane(combobox));

   }
}

Edit 3
在您的情况下,您将使用 ResultSet 中的信息填充您的模型。也许是这样的:

   ResultSet result = statement.executeQuery();

   while(result.next()){
       String productName = result.getString(1);
       String productId = result.getString(2); // ???? not sure if this is valid
       MyComboItem comboItem = new MyComboItem(productId, productName);
       comboModel.addElement(comboItem);
   }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java组合框摆动[关闭] 的相关文章

随机推荐

  • Java JTextArea 中选择文本会触发哪个事件?

    我想监视进入 JTextArea 的文本选择 我不知道选择文本会触发什么事件 我只想在从 JTextArea 中选择某些文本后立即启用某些菜单项 例如将选项复制和剪切到菜单中 我应该监控什么 我不知道文本组件有任何 选择侦听器 尽管它们可能
  • 将选择元素绑定到 Angular 中的对象

    我想将一个选择元素绑定到一个对象列表 这很简单 Component selector myApp template h1 My Application h1
  • C++ extern 模板实例化和 typedef (gcc)

    我正在尝试在外部实例化模板 但是我想在实例化子句中使用 typedef 我认为这个例子说了一千多字 typedef myTemplate base
  • 可以混合使用 % 和 px 来对齐表格吗?

    我试图将不同的表与不同数量的列对齐 以便前两列对齐 其余列独立对齐 但使用 非常困难 并且在调整窗口大小时会丢失对齐 这就是为什么我试图在 td 上将混合与 和 px 对齐 例如 table tr td width 100px td td
  • Java中如何进行URL解码?

    在Java中 我想将其转换为 https 3A 2F 2Fmywebsite 2Fdocs 2Fenglish 2Fsite 2Fmybook do 3Frequest type To this https mywebsite docs e
  • 通过javascript通过ajax请求获取页面完整的html源代码

    javascript 代码将通过 google chrome 中的网址栏从 www example com 启动 因此我无法使用 jquery 我的目标是当我在 www example com 中启动代码时 将 www example co
  • 个人版本控制系统推荐[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 供个人使用 任何人都可以推
  • 在 iPhone 上传输音频时是否可以减少背景噪音?

    我们用了一些WebRTC libraries并在测试应用程序中实现它们iPhone 测试应用程序允许使用此应用程序在两部手机之间进行语音通话 类似于 Skype 该应用程序会产生大量背景噪音 比 Skype 或 Line 等其他手机应用程序
  • 从 vb.net 中的命令行获取参数

    是否可以从返回参数processPath在这个例子中 抱歉 这可能更有意义 Dim processName As String Dim processPath As String If processName cmd Then Dim ar
  • IBM MQ 会话断开连接

    我正在创建一个像这样的 MQ 侦听器 它工作正常 但几分钟或几小时后就会因此异常而断开连接 我不控制服务器 这是通过专用电路而不是互联网进行的 我怀疑是网络问题其他服务在同一线路上运行没有问题 MQQueueConnectionFactor
  • CSS:显示:内联块和定位:绝对

    请考虑以下代码
  • 使用C#在远程计算机上执行powershell脚本

    我使用 Microsoft Bot Framework 创建了一个 Bot 应用程序 并希望实现以下目标 无需任何身份验证即可在远程计算机上执行 Powershell 脚本 powershell 脚本将托管在 Azure 或数据库 可能是任
  • 将 CamelCase 转换为 Snake_Case

    需要以下查询的结果 select regexp replace StackOverflow something something as stack overflow 以下正则表达式在每个大写字母前面添加下划线 regexp replace
  • 在seaborn中绘制两列dataFrame

    我正在尝试在seaborn中创建一个条形图 显示数据框中每行 因子 的两个变量 权重 方差 的值 我的数据如下 Factor Weight Variance Growth 10 0 15 Value 20 0 35 这是我的代码 fig p
  • UICollectionView 的可重用性问题

    我曾与UITableView但我从来没有用过UICollectionView在我的应用程序中 所以我想创建UICollectionView以编程方式 以下是我的代码 UICollectionViewFlowLayout layout UIC
  • 常见的 Linq / 标准查询操作符错误/错误步骤?

    对于没有函数式编程背景的程序员来说 有什么错误是需要避免的吗 人们容易犯的最大错误是误解 LINQ 查询的惰性和评估规则 查询是惰性的 在您迭代它们之前它们不会被执行 This does nothing No query executed
  • boost::unique_lock::timed_lock 的用法

    升压 定时锁 void wait int seconds boost this thread sleep boost posix time seconds seconds boost timed mutex mutex void threa
  • 为什么 gcov 报告使用良好的类的头文件覆盖率为 0%?

    我第一次尝试使用以下方法来测量测试覆盖率gcov 现在我已经过了最初的学习曲线 除了一个小障碍之外 一切似乎进展顺利 我希望这可以归结为我缺乏理解 所以我希望熟悉 gcov 的人能够解释发生了什么 问题是我有一个特定的头文件显示 0 覆盖率
  • Go 变量被覆盖(bug?)

    这里有点奇怪 我的问题是 人们运行我的代码会得到与我相同的结果吗 如果你这样做 这是我的代码的错误 我通常是一个Python程序员 还是golang中的错误 系统信息 Go 版本 1 1 2 Linux x64 fedora 19 代码的背
  • Java组合框摆动[关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我的表有两个字段 ProductID Primary Key ProductName duplicate values will be present 我已经脸红了productNam