Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Java combobox swing

Câu hỏi của bạn hơi chưa đầy đủ, nhưng tôi đoán là JComboBox của bạn được điền bằng Chuỗi. Nếu vậy, tốt hơn là bạn nên điền JComboBox (hoặc tốt hơn là mô hình của nó) với các đối tượng của lớp tùy chỉnh kết hợp ProductID của bạn với ProductName. Để hộp tổ hợp hiển thị tên, bạn cần cung cấp cho lớp của mình một phương thức toString () để trả về tên hoặc cung cấp cho hộp tổ hợp của bạn một trình kết xuất ô hiển thị tên.

Chỉnh sửa
Ví dụ:tạo một lớp, MyComboItem, cung cấp cho nó hai trường Chuỗi mà bạn điền từ cơ sở dữ liệu của mình, đặt cho nó một toString() phương thức hiển thị tên sản phẩm và điền vào JComboBox của bạn với các mục thuộc loại này:

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;
   }
}

Chỉnh sửa 2

Cái nào có thể được sử dụng như vậy:

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));

   }
}

Chỉnh sửa 3
Trong trường hợp của bạn, bạn sẽ điền vào mô hình của mình bằng thông tin từ Tập kết quả. Có lẽ một cái gì đó như:

   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);
   }



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql chọn dấu thời gian giữa a và b trả về tất cả hoặc 0 dấu thời gian

  2. Số lượng Mysql xuất hiện theo nhóm

  3. Cách thiết lập cấu trúc chỉ mục ElasticSearch với nhiều liên kết thực thể

  4. Một cái gì đó nhanh hơn get_headers ()

  5. Tạo bảng mới bằng cách chọn dữ liệu từ các bảng khác với TẠO BẢNG NHƯ