Проверьте, содержит ли JList объект с изменяющимся суффиксом

Мне нужно проверить, содержит ли JList/DefaultListModel элемент. Элемент, который я проверяю, представляет собой строку, которая изменяется после знака «$».

Вот псевдоверсия кода, с которым я работаю.

String theItem = "Bananas";
BigDecimal theQuantity = new BigDecimal(quantity.getText());
BigDecimal thePrice = new BigDecimal(0.00); //This changes depending on quanitity
thePrice = thePrice.setScale(2, BigDecimal.ROUND_HALF_UP);

if (!dlm.contains(whatGoesHere)) {
    dlm.addElement(theItem + " $" + thePrice.toString());
    jList.setModel(dlm);
    //More code
} else {
    JOptionPane.showMessageDialog(mainPanel, "You already selected that item", "Error Dialog", JOptionPane.ERROR_MESSAGE);
    return;
}

person Mos Def    schedule 28.10.2016    source источник
comment
Вы изучали регулярные выражения и сопоставление с образцом?   -  person Jonny Henly    schedule 29.10.2016
comment
может быть прослушиватель, установленный на объекты dml, которые вызываются в пределах dlm.addElement()   -  person Timothy Truckle    schedule 29.10.2016
comment
Или используйте класс (например, Product или Item) для хранения описания и цены и соответствующим образом реализуйте toString и equals. Дополнительные кредиты таким образом :)   -  person Paul Hicks    schedule 29.10.2016
comment
@PaulHicks, не могли бы вы подсказать мне, как сделать этот класс?   -  person Mos Def    schedule 29.10.2016
comment
Я решил проблему, просто создав отдельный DefaultListModel для проверки, который содержит только элемент.   -  person Mos Def    schedule 30.10.2016
comment
не стесняйтесь либо удалить вопрос, либо опубликовать свой собственный ответ (для пользы других)   -  person blurfus    schedule 30.10.2016
comment
Предоставьте ответ ниже и примите его, пожалуйста. Так мы определяем решенные посты на этом сайте   -  person OneCricketeer    schedule 30.10.2016


Ответы (1)


Я решил проблему, создав отдельный DefaultListModel, который содержит только выбранный элемент. Это используется в утверждении IF проверки.

Вот рабочий код:

DefaultListModel validatorDLM = new DefaultListModel();  //Specifically for validation
DefaultListModel orderDLM = new DefaultListModel();
String theItem = "Bananas";  //This changes with combo box
BigDecimal theQuantity = new BigDecimal(quantity.getText());
BigDecimal thePrice = new BigDecimal(0.00); //This changes depending on quanitity
thePrice = thePrice.setScale(2, BigDecimal.ROUND_HALF_UP);

if (!validatorDLM.contains(theItem)) {
    validatorDLM.addElement(theItem);
    orderDLM.addElement(theItem + " $" + thePrice.toString());
    jList.setModel(orderDLM);
    //More code
} else {
    JOptionPane.showMessageDialog(mainPanel, "You already selected that item", "Error Dialog", JOptionPane.ERROR_MESSAGE);
    return;
}
person Mos Def    schedule 30.10.2016