我需要创建一个程序来将所有单词存储在数组列表中。然后检查文本字段中的用户输入,看看它是否以数字和标点符号以外的任何内容开头。否则,它将需要显示错误并阻止将字符串添加到数组列表并显示适当的错误。
这是 ActionEvent 监听器,它包含用于检查的代码。我不太确定如何让它工作。
@Override
public void actionPerformed(ActionEvent e) {
for(int i = 0; i < 1; i++) {
String str = tf.getText(); // MUST BE STORED ON AN ARRAY LIST
ta.append(str + "\n"); // Append the text on new line each
if(str.startsWith(String.valueOf(nums))) { // Check input for a number at the start
error.setText("Error: Word starts a number. Please try again!");
error.setForeground(Color.RED);
ta.append("");
} else if (str.startsWith(String.valueOf(punct))) { // Check if input contains a punctuation at the start
error.setText("Error: Word starts with an illegal character. Please try again!");
error.setForeground(Color.RED);
ta.append("");
}
}
}
最佳答案
我将稍微重新表述您的问题以进行澄清,如果我有误解,请纠正我。
您有一个文本字段和一个文本区域。您希望用户在文本字段中输入一个单词并提交。如果该单词以数字或标点符号开头,则向用户指示错误。否则,将其添加到文本区域(在新行上)和内部 ArrayList。
要解决此问题,您需要满足以下条件:
- 安
ArrayList<String>
这是一个类成员变量,您可以在其中存储单词 - 处理按钮点击的事件处理程序。
事件处理程序应该:
- 解析文本字段中的字符串(使用
getText()
,就像您已经使用的那样)。 - 执行您已经执行的错误检查。
- 如果没有遇到任何错误条件(因此为此添加
else
子句),请将单词添加到文本区域(您已经在这样做)并将其添加到 ArrayList。
希望这可以帮助您更清楚地了解如何解决该问题。如果没有,请发布您尝试过的代码示例以及您具体遇到的错误。
编辑:
这是 if-else 错误处理代码块的一些伪代码,假设您声明了一个新的 ArrayList
以类(class)成员的身份遵守您的 promise :
// as class member variable
List<String> wordList = new ArrayList<>();
// word handler code
if (str starts with a number) {
// handle error
} else if (str starts with punctuation) {
// handle error
} else {
ta.append(str + "\n");
wordList.add(str);
}
关于java - 将 JTextArea 中的文本存储为数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58475196/