【问题标题】:How to add objects to CComboBox如何将对象添加到 CComboBox
【发布时间】:2014-08-31 21:13:27
【问题描述】:

我已将我的 CComboBox 声明如下:

     final CCombo combobox= new CCombo(shell, SWT.BORDER);
     combobox.setBounds(30, 22, 88, 21);

     ResultSet result = statement.executeQuery();

我想将类 myCombo 的对象添加到组合框

     while(result.next())
     {
          String ProName=result.getString(1);
          String ProId=result.getString(2);
          myCombo comboItem=new myCombo(ProId,ProName); //OBJECT comboItem
          combobox.addElement(comboItem); //ERROR The method addElement(myCombo)  
                                             is undefined for the type CCombo
      } 

组合框出错。addElement(comboItem) .... 但 addElement() 已在 CCombo 中定义。

这是类 myCombo

class myCombo{
               private String ProId;
               private String ProName;


               public myCombo(String ProId, String ProName) {
                   this.ProId=ProId;
                   this.ProName=ProName;

               }

               public String getProductName() {
                      return ProName;
                   }

               public String getProductId() {
                      return ProId;
                   }

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

如何取回被选中的数据。
将 ERROR 显示为 cant

combobox.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {



    myCombo item = (myCombo) combo.getItem(getSelectionIndex()) ; //ERROR

                    if (item!=null) {
                       System.out.printf("You've selected Product Name: %s, Product ID: %s%n", 
                             item.getProductName(), item.getProductId());
                    }

            }
        });

【问题讨论】:

  • 如果可以,您应该使用 JFace ComboViewer 而不是 SWT CCombo 直接
  • Swing 和 SWT 是完全不同的,你应该清楚你在问什么。

标签: java swt ccombobox


【解决方案1】:

如果您使用org.eclipse.swt.custom.CCombo 而不是addElement(Object o) 方法。它有add(String s) 方法您必须覆盖 toString()

      myCombo comboItem=new myCombo(ProId,ProName); 
      combobox.add(comboItem.toString())

举例

           @Override
           public String toString() {
                  return ProId+":"+ProName;
           }

获取选择,

  combo.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            System.out.print("Selected Value-");
            System.out.print(combo.getItem(combo.getSelectionIndex()));
        }
    });

【讨论】:

  • 感谢您的帮助也想知道。如何取回数据。在 addSelectionListener
  • 我找不到如何从组合框中获取所选数据并转换为对象
  • 也可以直接打印System.out.println(combo.getItem(getSelectionIndex())));
  • 方法 getSelectionIndex() 未定义类型 new SelectionAdapter(){} 我应该在 getSelectionIndex() 方法中定义什么
猜你喜欢
  • 2014-09-14
  • 2023-01-19
  • 1970-01-01
  • 2015-08-12
  • 1970-01-01
  • 2018-10-06
  • 2012-01-09
  • 2017-05-03
  • 1970-01-01
相关资源
最近更新 更多