無法解決此問題。 我想檢索我在textType上用keyTyped編寫的文本,並將int放在String上。但如果我這樣做,它給了我一個空白的字符串。我能做什麼?keyTyped給出JTextField爲空
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」,而是這將是 「」
這是什麼代碼試圖做?對不起,但它看起來很亂。意見建議:1)擺脫關鍵聽衆。您不應該將KeyListeners添加到Swing文本組件,因爲這會混淆文本組件的固有功能(正如您發現的那樣)。相反,使用DocumentListeners或DocumentFilters,因爲許多類似的問題答案會告訴你。 3)爲什麼每次聆聽者被激活時你都在讀取和重新讀取文件?這看起來像你讓程序做了不必要的和昂貴的重複操作。不要這樣做。一次讀入文件。 –
基本上我想要做的是閱讀用戶的輸入,這個輸入(這是一個數字)將在包含數字和日期列表的.txt文件中搜索。例如:.txt文件的第一行是「1:1-01-2017」,第二行是2:8-01-2017「第三行是」3:15-01-2017等。所以我想要做的就是在這個.txt文件中搜索「:」之前的數字,當它找到它時,在另一個文本字段中寫入日期。例。用戶在textfield1「3」中寫入時,程序將在.txt文件中搜索「:」之前的數字3,並且當它找到它時,會將日期寫入另一個文本字段。 – Karlken