package checkbox;
|
|
import javax.swing.*;
|
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionListener;
|
import java.util.ArrayList;
|
|
public class ManyCheckComboBox extends JComboBox implements ActionListener {
|
public ManyCheckComboBox() {
|
addItem(new CheckValue(false, "ȫѡ"));
|
this.addActionListener(
|
new ActionListener() {
|
public void actionPerformed(ActionEvent ae) {
|
itemSelected();
|
}
|
});
|
}
|
|
private void itemSelected() {
|
if (getSelectedItem() instanceof CheckValue) {
|
if (getSelectedIndex() == 0) {
|
selectedAllItem();
|
} else {
|
CheckValue jcb = (CheckValue) getSelectedItem();
|
jcb.bolValue = (!jcb.bolValue);
|
setSelectedIndex(getSelectedIndex());
|
}
|
SwingUtilities.invokeLater(
|
new Runnable() {
|
public void run() {
|
/*Ñ¡ÖкóÒÀÈ»±£³Öµ±Ç°µ¯³ö״̬*/
|
showPopup();
|
}
|
});
|
}
|
}
|
private void selectedAllItem() {
|
boolean bl = false;
|
for (int i = 0; i < getItemCount(); i++) {
|
CheckValue jcb = (CheckValue) getItemAt(i);
|
if (i == 0) {
|
bl = !jcb.bolValue;
|
}
|
jcb.bolValue = (bl);
|
}
|
setSelectedIndex(0);
|
}
|
/*»ñȡѡȡµÄ¶ÔÏó*/
|
public ArrayList getSelectItemValues() {
|
ArrayList arrayList = new ArrayList();
|
for (int i = 1; i < getItemCount(); i++) {
|
CheckValue jcb = (CheckValue) getItemAt(i);
|
if (jcb.bolValue) {
|
arrayList.add(jcb.value);
|
}
|
}
|
return arrayList;
|
}
|
}
|