关于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
}