【发布时间】:2019-03-04 01:29:35
【问题描述】:
我已经使用 JavaFX 大约两个星期了,我在删除行时遇到了 TextArea 的问题。我在 TextArea 中附加了以下信息,但如何删除特定行?
- 玛丽·约翰逊 44.33
- 劳拉·史密斯 55.12
- 詹姆斯查尔斯 23.56
如何删除包含 Laura Smith 55.12 的行并将其他两个保留在那里? 我得到了第一个角色,但我不知道从那里去哪里。请帮忙。
for (String line : reservationBox.getText().split("\n")) {
if(line.contains(nameText.getText() + " " + priceText.getText())) {
char firstCharacter = nameText.getText().charAt(0); //get character of the first letter of the name
reservationBox.deleteText( ?? );
}
}
【问题讨论】:
-
您希望在每种情况下都只删除第二行?
-
没有。这取决于名称文本。如果nameText是James Charles,那么我要删除第三行,但是我不知道如何获取该行的第一个和最后一个索引,让程序知道要删除哪一行(从哪里开始,从哪里结束使用 .deleteText() )
-
一般的想法是找到索引范围然后调用
TextInputControl.deleteText(int,int)或TextInputControl.deleteText(IndexRange)。 -
这就是我想的Slaw,但我不知道如何获取索引范围。如果我使用 int index1 = line.indexOf(firstCharacter);它采用整个文本的第一个字符,而不是名称的开头。
-
旁注:这个功能看起来更适合
ListView而不是TextArea。