我需要创建一个程序来将所有单词存储在数组列表中。然后,检查文本字段中的用户输入,看看它是否以数字和标点符号以外的其他内容开头。否则,它将需要显示一个错误并阻止将要添加到该数组列表中的字符串并显示一个适当的错误。
这里有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。希望这可以帮助您更清晰地了解如何解决该问题。如果没有,请发布您尝试过的代码以及您具体遇到的错误的代码示例。
编辑:如果假设声明一个新的ArrayList
来将您的单词作为类成员保存,则这是您的if-else错误处理代码块的一些伪代码:
// 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);
}