2010-03-04 36 views
4

如何让我的一些JComboBox项目不可选?我试过这个:如何让JComboBox中的某些项目不可选?

@Override 
public Component getListCellRendererComponent(JList list, Object value, 
    int index. boolean isSelected, boolean cellHasFocus) { 

    Component comp = super.getListCellRendererComponent(list, value, index, 
     isSelected, cellHasFocus); 

    if (not selectable conditions) { 
     comp.setEnabled(false); 
     comp.setFocusable(false); 
    } else { 
     comp.setEnabled(true); 
     comp.setFocusable(true); 
    } 

    return comp; 
} 

项目变灰,但仍可由用户选择。

回答

5

尝试将选定项目更改为上次选择的项目时,选择了“不可选”项目。这意味着您需要将“上次选择的项目”存储在一个字段中。

+3

如果有人试图使用键盘沿着物品列表走下去,这可能会产生不好的效果。下降到不可选择的一个将永远反弹回到以前。 – DJClayworth 2011-07-13 16:29:32

1

我会试图做到这一点的方式是只向用户显示有效的项目,任何无效的东西都会隐形。我希望这有帮助。

+0

这就是我现在这样做的方式...... – woezelmann 2010-03-04 12:06:04

相关问题