无法解决这个问题。 我想用keyTyped检索我在文本字段上写的文本,并将int放在String上。但如果我这样做,它会给我一个空白的字符串。我该怎么办?
textField_9.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e){
xw = textField_9.getText(); //should retrieve my input
}
public void keyTyped(KeyEvent e) {
char c = e.getKeyChar();
if((!(Character.isDigit(c)) && (c!='.'))){
e.consume();
}
System.out.println(xw); //gives nothing ("") not null
numero = e.getKeyChar();
String fileName = defaultx+"\\"+"Contratti"+"\\"+textField_7.getText()+"\\"+"lista"+tipo;
Scanner scanner;
try {
scanner = new Scanner(new File(fileName));
scanner.useDelimiter(":");
while(scanner.hasNext()){
num = scanner.next();
System.out.println("Numero = "+num+"\t"+xw); //debug
dat = scanner.nextLine().replaceAll(":", "");
if(num == xw){
try(Scanner scanner1 = new Scanner(dat)){
scanner1.useDelimiter(":");
giorno = scanner1.next();
meset = scanner1.next();
anno = scanner1.next();
System.out.println(giorno+"-"+meset+"-"+anno); //debug
}catch(NoSuchElementException ex){
}
}else{
System.out.println("Dato non trovato");
}
}
scanner.close();
} catch (FileNotFoundException e1) {
} catch(NoSuchElementException e1){
}
}
});
示例
我在JTextField写入数字“5”,xw应该是“5”但是它将是“”
答案 0 :(得分:2)
基本上我尝试做的是阅读用户的输入,这个输入(这是一个数字)将在.txt文件中搜索,该文件包含一个数字和日期列表。例如:.txt文件的第一行是" 1:1-01-2017"第二行是2:8-01-2017"第三行是" 3:15:01:2017等。
在一次中读取此数据,而不是每按一次按键,因为您正在尝试执行上述操作,也许在类的构造函数中执行此操作。然后将数据存储在可搜索的集合中,可能是自定义类的数组列表。
所以我想做的是在"之前搜索这个.txt文件中的数字:"当它找到它时,在另一个文本字段中写入日期。例。用户在textfield1" 3"中写入,程序将在.txt文件中搜索"之前的数字3:"当它找到它时,会将日期写入另一个文本域。
保存文本文件数据的自定义类应在各自的字段中保存单独的数字,并在需要时再次搜索这些对象的ArrayList。
另外: