我有一个JComboBox包含三个项目{“Personel”,“Magasinier”,“Fournisseur”}.
我希望这个JComboBox显示值“Choisir une option:”,这是一个不可选择的值.
我在initComponents()之后尝试了这段代码. :
this.jComboBox1.setSelectedItem("Choisir une option :");
但它不起作用.
我怎样才能做到这一点 ?
解决方法:
您可以使用以下SSCCE之类的代码覆盖JComboBox模型中的选择代码:
public class JComboExample {
private static JFrame frame = new JFrame();
private static final String NOT_SELECTABLE_OPTION = " - Select an Option - ";
private static final String NORMAL_OPTION = "Normal Option";
public static void main(String[] args) throws Exception {
JComboBox comboBox = new JComboBox();
comboBox.setModel(new DefaultComboBoxModel() {
private static final long serialVersionUID = 1L;
boolean selectionAllowed = true;
@Override
public void setSelectedItem(Object anObject) {
if (!NOT_SELECTABLE_OPTION.equals(anObject)) {
super.setSelectedItem(anObject);
} else if (selectionAllowed) {
// Allow this just once
selectionAllowed = false;
super.setSelectedItem(anObject);
}
}
});
comboBox.addItem(NOT_SELECTABLE_OPTION);
comboBox.addItem(NORMAL_OPTION);
frame.add(comboBox);
frame.pack();
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
frame.setVisible(true);
}
});
}
}
这将显示一个组合框,其初始选择为“ – 选择一个选项 – ”.用户选择其他选项后,将无法再次选择原始选项.
标签:java,prompt,swing,jcombobox,listcellrenderer
来源: https://codeday.me/bug/20190529/1178237.html