Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Ayunan kotak kombo Jawa

Pertanyaan Anda agak tidak lengkap, tetapi tebakan saya adalah JComboBox Anda diisi dengan String. Jika demikian, kemungkinan akan lebih baik bagi Anda untuk mengisi JComboBox (atau lebih baik, modelnya) dengan objek kelas khusus yang menggabungkan ProductID Anda dengan ProductName. Agar kotak kombo menampilkan nama, Anda harus memberi kelas Anda metode toString() yang mengembalikan nama, atau memberi kotak kombo Anda perender sel yang menunjukkan nama.

Sunting
Misalnya buat kelas MyComboItem, beri dua kolom String yang Anda isi dari database Anda, beri toString() metode yang menunjukkan nama produk, dan isi JComboBox Anda dengan item jenis ini:

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

Yang dapat digunakan seperti ini:

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
Dalam kasus Anda, Anda akan mengisi model Anda dengan informasi dari ResultSet. Mungkin sesuatu seperti:

   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. Bagaimana menghubungkan ke mysql dari C# melalui SSH

  2. Bagaimana saya bisa memfilter kueri berdasarkan porsi jam bidang DateTime di MySQL?

  3. Solusi untuk Memasukkan Intention Locks di MySQL

  4. Cara Memberikan Semua Keistimewaan pada Database di MySQL

  5. Cara Memeriksa Versi MySQL