我在表單上有一個JList。當表單加載時,JList將使用我的數組中的項目填充。這些物品是產品,並在產品詳細信息旁邊有「庫存數量」編號。 在下面的代碼中,我找到了股票編號,如果它小於5,我希望該行以紅色突出顯示。JList - 突出顯示紅色的特定單元格
目前我的整體Jlist被突出顯示爲紅色,如果有任何數量小於5。 我對Java很新,所以請儘可能簡單地解釋一下! 如果有人可以解釋爲什麼我的代碼工作不正常,那將會很棒 - 我真的不理解很多「細胞渲染」的東西 - 我昨天才看到它。
public void lowStock(){
DefaultListModel<String> list = new DefaultListModel<String>();
list = (DefaultListModel) lstProducts.getModel();
int listSize = list.getSize();
for (int i=0; i<listSize; i++){
String element = list.get(i);
int blankSpace = element.lastIndexOf(" ");
String quantity = element.substring(blankSpace).trim();
final int intQuantity = Integer.parseInt(quantity);
if (intQuantity < 5){
ListCellRenderer lstclrnd;
lstProducts.setCellRenderer(new DefaultListCellRenderer(){
//element.setBackGround(Color.red);
});
}
}
class MyListRenderer extends DefaultListCellRenderer
{
private HashMap theChosen = new HashMap();
public Component getListCellRendererComponent(JList list,
Object value, int index, boolean isSelected,
boolean cellHasFocus)
{
super.getListCellRendererComponent(list, value, index,
isSelected, cellHasFocus);
theChosen.put(value, "chosen");
setBackground(Color.red);
if(theChosen.containsKey(value))
{
setBackground(Color.red);
}
渲染你什麼時候將背景設置爲紅色以外的東西嗎? –
如果庫存少於5件,背景應爲紅色。如果有5個或更多庫存,背景不應該是紅色。 – ibexe
好的,但是你什麼時候將背景設置爲除紅色之外的其他任何東西?在我看來,無論如何,你都將它設置爲紅色。 –