java - 可编辑 Jcombobox 不从数据库填充数据

标签 java swing jcombobox comboboxmodel

在我的 Java swing 应用程序中,我希望 Jcombobox 填充数据库中的一些数据,并允许用户输入他们想要的关键字以便使用组合框值进行搜索。所以我将可编辑模式设置为 true。但是后来我丢失了来自数据库的数据。是否可以启用可编辑模式 true 并同时使用数据库中的数据填充 Jcomobobox?

      private void cmbPvtTrnsCompanySeacrhFocusGained(java.awt.event.FocusEvent evt) {                                                    
          try {  
              ArrayList<String> transList = PvtTransDriverController.getPvtTransporterNames();
              ComboBoxModel comboBoxModel = new DefaultComboBoxModel(transList.toArray());
              cmbPvtTrnsCompanySeacrh.setModel(comboBoxModel);

        } catch (ClassNotFoundException ex) {
              Logger.getLogger(PvtTransDriver.class.getName()).log(Level.SEVERE, null, ex);
        } catch (SQLException ex) {
              Logger.getLogger(PvtTransDriver.class.getName()).log(Level.SEVERE, null, ex);
        }
  }

cmbPvtTrnsCompanySeacrh的初始化代码

cmbPvtTrnsCompanySeacrh.setEditable(true);
        cmbPvtTrnsCompanySeacrh.addFocusListener(new java.awt.event.FocusAdapter() {
              public void focusGained(java.awt.event.FocusEvent evt) {
                    cmbPvtTrnsCompanySeacrhFocusGained(evt);
              }
        });

        javax.swing.GroupLayout jPanel23Layout = new javax.swing.GroupLayout(jPanel23);
        jPanel23.setLayout(jPanel23Layout);
        jPanel23Layout.setHorizontalGroup(
              jPanel23Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
              .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel23Layout.createSequentialGroup()
                    .addContainerGap()
                    .addComponent(cmbPvtTrnsCompanySeacrh, 0, 266, Short.MAX_VALUE)
                    .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                    .addComponent(btnSearch, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addContainerGap())
        );

最佳答案

您可以编写如下代码:

ArrayList<String> transList = PvtTransDriverController.getPvtTransporterNames();
ComboBoxModel comboBoxModel = new DefaultComboBoxModel(transList.toArray());
cmbPvtTrnsCompanySeacrh.setModel(comboBoxModel );

关于java - 可编辑 Jcombobox 不从数据库填充数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15608266/

相关文章:

java - 原语和对象的不同可变参数优先级

java - 监听 JTable 中 JCheckBox 的变化

java - JScrollPane 中的 JTabbedPane 一次仅显示一项

java - 如何在 Java 中将浮点枚举与 Jcombobox 一起使用

java - 在 Java 中向 JComboBox 添加项目的问题

Java随机数数组错误

java - 将转换后的 Canvas DataURL 字节保存到数据库时出现 Blob 损坏

java - 为按位运算声明掩码

java - JTextField:避免在数字中显示 ","

java - JComboBox 自动完成