3

我想知道是否可以使用 if 语句检查 JList(或 JList 模型)的特定值。

我想使用list.setSelectedValue()突出显示当前值,但是如果该值不在 JList 中,则会引发错误,因此我想使用 if 来检查它是否在 JList 中。

谢谢

4

3 回答 3

6

假设您在 JList 中使用DefaultListModel,您可以使用contains方法,如下所示:

DefaultListModel model = (DefaultListModel) list.getModel;
model.contains(theObject);
于 2013-04-03T16:31:41.037 回答
1
   public static boolean hasElement(Object searched, JList list) {
      for (int a = 0; a < list.getModel().getSize(); a++) {
         Object element = list.getModel().getElementAt(a);
         if (element.equals(searched))  {
            return true;
         }
      }
      return false;
   }
于 2013-04-03T16:31:55.700 回答
1

您可以使用JList#getNextMatch()以下方法:

String s = "element";//Say you want to look up for String "element "
int index = list.getNextMatch(s,0,Position.Bias.Forward);
if (index != -1)
list.setSelectedValue(s,true);
于 2013-04-03T16:32:56.610 回答