您无法禁用JComboBox
. 您可以将其从该位置删除,方法如下:-
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JComboBox;
import javax.swing.JFrame;
public class Combobox extends JFrame{
Combobox(){
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
String[] list={"car","bus","bike"};
final JComboBox c1=new JComboBox(list);
final JComboBox c2=new JComboBox(list);
Container c=this.getContentPane();
c.setLayout(new FlowLayout());
c.add(c1);
c.add(c2);
c1.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
int index=c1.getSelectedIndex();
c2.removeItemAt(index);
}
});
this.pack();
}
public static void main(String[] args) {
new Combobox();
}
}
final JComboBox c1=new JComboBox(list);
将使一个JComboBox
拥有的物品list
。之所以使用 c1 ,是因为在用于单击事件的final
内部类内部调用了 c1。将获得所选项目的. 将删除位于c2 位置的项目。因为和都包含相似的项目,所以项目的位置是相同的。如果您想在某个时候在 c2 中重新插入项目,则保存要删除的项目的索引位置和要删除的项目的名称,使用ActionListener
index=c1.getSelectedIndex();
index location
c1
c2.removeItemAt(index);
index
c1
c2
index
index=c1.getSelectedIndex();
item=c2.getItemAtIndex(index);
c2.removeItemAt(index);
然后使用恢复项目
c2.insertItemAt(item,index);
注意-如果要在外面使用index
,item
应该在外面声明 ActionListener
。