下面列出了怎么用javax.swing.MutableComboBoxModel的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* Returns <code>JComboBox</code> containing all suites. Also see
* {@link #addUserSuite}.
*/
public static JComboBox getSuitesComboBox() {
MutableComboBoxModel model = new SuiteListModel(userSuites);
Project[] projects = OpenProjects.getDefault().getOpenProjects();
for (int i = 0; i < projects.length; i++) {
String suiteDir = SuiteUtils.getSuiteDirectoryPath(projects[i]);
if (suiteDir != null) {
model.addElement(suiteDir);
}
}
JComboBox suiteCombo = new JComboBox(model);
if (model.getSize() > 0) {
suiteCombo.setSelectedIndex(0);
}
return suiteCombo;
}
/**
* Insert the given item into the combo box, and set it as first selected
* item. If the item already exists, it is removed, so there are no
* duplicates.
* @param combo
* @param item
*/
public static void insertIntoCombo(JComboBox combo, Object item) {
MutableComboBoxModel model = (MutableComboBoxModel) combo.getModel();
if (model.getSize() == 0) {
model.insertElementAt(item, 0);
return;
}
Object o = model.getElementAt(0);
if (o.equals(item)) {
return;
}
model.removeElement(item);
model.insertElementAt(item, 0);
combo.setSelectedIndex(0);
}
/**
* Insert the given item into the combo box, and set it as first selected
* item. If the item already exists, it is removed, so there are no
* duplicates.
* @param combo
* @param item the item to insert. if it's null, then nothing is inserted
*/
public static void insertIntoCombo(JComboBox combo, Object item) {
if(item == null) {
return;
}
MutableComboBoxModel model = (MutableComboBoxModel) combo.getModel();
if (model.getSize() == 0) {
model.insertElementAt(item, 0);
return;
}
Object o = model.getElementAt(0);
if (o.equals(item)) {
return;
}
model.removeElement(item);
model.insertElementAt(item, 0);
combo.setSelectedIndex(0);
}
private void updateComboBoxes(List<FormItem> items) {
for (FormItem item : items) {
JComponent field = item.getField();
if (field instanceof JComboBox) {
@SuppressWarnings("unchecked")
JComboBox<String> box = (JComboBox<String>) field;
List<String> newPossibleValues = item.getPossibleValues();
if (!boxModelIsSame(box, newPossibleValues)) {
MutableComboBoxModel<String> mmodel = (MutableComboBoxModel<String>) box.getModel();
replaceBoxModelValues(mmodel, newPossibleValues);
mmodel.setSelectedItem(item.getCurrentValue());
}
}
}
}
private void replaceBoxModelValues(MutableComboBoxModel<String> mmodel, List<String> newPossibleValues) {
try {
while (mmodel.getSize() > 0) {
mmodel.removeElementAt(0);
}
} catch (Exception e) {
// ignore weird index out of bounds exceptions
}
for (String value : newPossibleValues) {
mmodel.addElement(value);
}
}
protected synchronized MutableComboBoxModel duplicateSharedDataModel()
{
MutableComboBoxModel newModel = new DefaultComboBoxModel();
for (int i = 0, limit = s_sharedDataModel.getSize(); i < limit; ++i)
{
SQLHistoryItem obj = (SQLHistoryItem)s_sharedDataModel.getElementAt(i);
newModel.addElement(obj.clone());
}
return newModel;
}
private MutableComboBoxModel<LookAndFeelInfo> getMutableModel() {
return (MutableComboBoxModel<LookAndFeelInfo>) getModel();
}
public MutableComboBoxModel<LocalServer> getLocalServerModel() {
return localServerComboBoxModel;
}
public void setLocalServerModel(MutableComboBoxModel<LocalServer> localServers) {
localServerComboBoxModel = localServers;
localServerComboBox.setModel(localServerComboBoxModel);
}
public MutableComboBoxModel<LocalServer> getLocalServerModel() {
return localServerController.getLocalServerModel();
}
public void setLocalServerModel(MutableComboBoxModel<LocalServer> localServers) {
localServerController.setLocalServerModel(localServers);
}
@SuppressWarnings("unchecked")
private MutableComboBoxModel<LocalServer> getLocalServers() {
return (MutableComboBoxModel<LocalServer>) descriptor.getProperty(LOCAL_SERVERS);
}
@SuppressWarnings("unchecked")
private MutableComboBoxModel<LocalServer> getLocalServerModel() {
return (MutableComboBoxModel<LocalServer>) descriptor.getProperty(COPY_SRC_TARGETS);
}
public MutableComboBoxModel<LocalServer> getLocalServerModel() {
return copyFilesVisual.getLocalServerModel();
}
public void setLocalServerModel(MutableComboBoxModel<LocalServer> localServers) {
copyFilesVisual.setLocalServerModel(localServers);
}
@Override
public MutableComboBoxModel<LocalServer> getLocalServerModel() {
return null;
}
@Override
public void setLocalServerModel(MutableComboBoxModel<LocalServer> localServers) {
}
@Override
public MutableComboBoxModel<LocalServer> getLocalServerModel() {
return localServerComponent.getLocalServerModel();
}
@Override
public void setLocalServerModel(MutableComboBoxModel<LocalServer> localServers) {
localServerComponent.setLocalServerModel(localServers);
}
public abstract MutableComboBoxModel<LocalServer> getLocalServerModel();
public abstract void setLocalServerModel(MutableComboBoxModel<LocalServer> localServers);