从 JList 中删除单词而不考虑大小写
Remove words from JList regardless of case sensitivity
所以我的程序让用户在充当输入字段的 JTextField 中输入单词,然后将它们存储在 JList 中。之后,他们可以通过在另一个输入框中输入单词来删除单词。我的问题是它会删除与用户区分大小写相匹配的单词,但不会删除不匹配的单词(例如,如果列表中包含单词 "dog"、"DOG" 和 "Dog"并且用户键入要删除 "dog",它将删除 "dog" 条目,但不会删除其他条目)。我将如何解决这个问题?
到目前为止,我专门删除单词的代码是这样的:
DefaultListModel hList = new DefaultListModel();
JList list = new JList(hList);
JButton submit = new JButton("Submit");
submit.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
while (list.contains(userInput.getText())){
list.removeElement(userInput.getText());
}
我尝试过使用 equalsIgnoreCase 之类的方法,但我认为我做的不对。
如有任何帮助,我们将不胜感激。
可以迭代转换
String[] data = {"one", "two", "three", "four"};
JList<String> myList = new JList<String>(data);
final String find = "Two";
for (int x = 0; x < myList.getModel().getSize(); x++) {
if (myList.getModel().getElementAt(x).compareToIgnoreCase(find) == 0) {
System.out.println("Found at index " + x);
}
}
要删除,您将不得不使用 DefaultListModel
String[] data = {"one", "two", "three", "four"};
DefaultListModel<String> add = new DefaultListModel<String>();
for (String str : data)
add.addElement(str);
JList<String> myList = new JList<String>(add);
final String find = "Two";
for (int x = 0; x < myList.getModel().getSize(); x++) {
if (myList.getModel().getElementAt(x).compareToIgnoreCase(find) == 0) {
System.out.println("Found at index " + x);
DefaultListModel<String> model = (DefaultListModel<String>)myList.getModel();
model.remove(x);
}
}
所以我的程序让用户在充当输入字段的 JTextField 中输入单词,然后将它们存储在 JList 中。之后,他们可以通过在另一个输入框中输入单词来删除单词。我的问题是它会删除与用户区分大小写相匹配的单词,但不会删除不匹配的单词(例如,如果列表中包含单词 "dog"、"DOG" 和 "Dog"并且用户键入要删除 "dog",它将删除 "dog" 条目,但不会删除其他条目)。我将如何解决这个问题?
到目前为止,我专门删除单词的代码是这样的:
DefaultListModel hList = new DefaultListModel();
JList list = new JList(hList);
JButton submit = new JButton("Submit");
submit.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
while (list.contains(userInput.getText())){
list.removeElement(userInput.getText());
}
我尝试过使用 equalsIgnoreCase 之类的方法,但我认为我做的不对。
如有任何帮助,我们将不胜感激。
可以迭代转换
String[] data = {"one", "two", "three", "four"};
JList<String> myList = new JList<String>(data);
final String find = "Two";
for (int x = 0; x < myList.getModel().getSize(); x++) {
if (myList.getModel().getElementAt(x).compareToIgnoreCase(find) == 0) {
System.out.println("Found at index " + x);
}
}
要删除,您将不得不使用 DefaultListModel
String[] data = {"one", "two", "three", "four"};
DefaultListModel<String> add = new DefaultListModel<String>();
for (String str : data)
add.addElement(str);
JList<String> myList = new JList<String>(add);
final String find = "Two";
for (int x = 0; x < myList.getModel().getSize(); x++) {
if (myList.getModel().getElementAt(x).compareToIgnoreCase(find) == 0) {
System.out.println("Found at index " + x);
DefaultListModel<String> model = (DefaultListModel<String>)myList.getModel();
model.remove(x);
}
}