private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {
jComboBox1.revalidate();
jComboBox2.removeAllItems();
jComboBox3.removeAllItems();
jComboBox4.removeAllItems();
String b1=jComboBox1.getSelectedItem().toString();
String bb=this.branch;
String y1=this.year;
if(y1!=null){
String[] b=y1.split(";");
System.out.println(y1);
System.out.println(b1);
int size=b.length;
System.out.println(size);
for(int i=0;i<size;i++){
if(b[i].matches("(?i).*"+b1+".*")){
System.out.println(b[i]);
jComboBox2.addItem(b[i].replaceAll(":","").replaceAll(b1.toLowerCase(), ""));
jComboBox2ActionPerformed( evt);
}}}
}
它在加载帧时运行第一次但是当我选择secound项时它会给我错误
答案 0 :(得分:0)
申请removeAllItems
后,组合框中没有项目
所以getSelectedItem
在内部使用ComboBoxModel getSelectedItem
函数说明
所选项目,如果没有选择,则为null
虽然oracle docs没有说明返回null
的任何内容解决方案:null
中的toString()
和null
会导致null指针异常,因此请确保在调用getSelectedItem
或进行无效检查时有一些项目< / p>
String b1=jComboBox1.getSelectedItem()!=null ? jComboBox1.getSelectedItem().toString(): "";