【jcombobox】...jComboBox1和jComboBox2。我想实现以下功能:我已实现的:在...

发布时间:2021-03-20 23:13:31

关于netbeans中 事件监听等方面的问题。我在netbeans中设置了两个组合框(这两个组合框在同一个面板中),jComboBox1和jComboBox2。我想实现以下功能:我已实现的:在jComboBox1中加入items:A,B,C.在jComboBox2中加入items:1,2,3,4,5,6,7,8.我想实现而不懂的:在交互中,我选择jComboBox1中的A时,jComboBox2中只有1,2,3可选,其 余不可见; 选择jComboBox1中的B时,jComboBox2中只有4,5,6可选,其 余不可见; 选择jComboBox1中的C时,jComboBox2中只有7,8可选,其 余不可见; 监听和动作函数都写出来。

网友回答

【答案】 /*
   * NewJFrame.java
   *
   * Created on 2009年1月1日, 上午9:21
   */
  package javaapplication5;
  import javax.swing.ComboBoxModel;
  import javax.swing.event.ListDataListener;
  /**
   *
   * @author Administrator
   */
  public class NewJFrame extends javax.swing.JFrame {
   /** Creates new form NewJFrame */
   public NewJFrame() {
   initComponents();
   }
   /** This method is called from within the constructor to
   * initialize the form.
   * WARNING: Do NOT modify this code. The content of this method is
   * always regenerated by the Form Editor.
   */
   @SuppressWarnings(unchecked)
   //
   private void initComponents() {
   jComboBox1 = new javax.swing.JComboBox();
   jComboBox2 = new javax.swing.JComboBox();
   setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
   jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { A, B, C }));
   jComboBox1.addItemListener(new java.awt.event.ItemListener() {
   public void itemStateChanged(java.awt.event.ItemEvent evt) {
   jComboBox1ItemStateChanged(evt);
   }
   });
   jComboBox2.setModel(new javax.swing.DefaultComboBoxModel(new String[] { 1, 2, 3 }));
   javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
   getContentPane().setLayout(layout);
   layout.setHorizontalGroup(
   layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
   .addGroup(layout.createSequentialGroup()
   .addGap(33, 33, 33)
   .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
   .addComponent(jComboBox2, javax.swing.GroupLayout.Alignment.LEADING, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
   .addComponent(jComboBox1, javax.swing.GroupLayout.Alignment.LEADING, 0, 123, Short.MAX_VALUE))
   .addContainerGap(244, Short.MAX_VALUE))
   );
   layout.setVerticalGroup(
   layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
   .addGroup(layout.createSequentialGroup()
   .addGap(38, 38, 38)
   .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
   .addGap(31, 31, 31)
   .addComponent(jComboBox2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
   .addContainerGap(189, Short.MAX_VALUE))
   );
   pack();
   }//
  private void jComboBox1ItemStateChanged(java.awt.event.ItemEvent evt) {
   String value = jComboBox1.getSelectedItem().toString();
   if(value.equals(A)){
   jComboBox2.setModel(new javax.swing.DefaultComboBoxModel(new String[] { 1, 2, 3 }));
   }
   else if(value.equals(B)){
   jComboBox2.setModel(new javax.swing.DefaultComboBoxModel(new String[] { 4, 5, 6 }));
   }
   else if(value.equals(C)){
   jComboBox2.setModel(new javax.swing.DefaultComboBoxModel(new String[] { 7, 8, 9 }));
   }
  }
   /**
   * @param args the mand line arguments
   */
   public static void main(String args[]) {
   java.awt.EventQueue.invokeLater(new Runnable() {
   public void run() {
   new NewJFrame().setVisible(true);
   }
   });
   }
   // Variables declaration - do not modify
   private javax.swing.JComboBox jComboBox1;
   private javax.swing.JComboBox jComboBox2;
   // End of variables declaration
  }
以上问题属网友观点,不代表本站立场,仅供参考!