По сути, я построил интерфейс, который переводит вводимые пользователем данные в текстовую область.После нажатия Control + C пользователь сохраняет ввод в файл file.txt.
В интерфейсе по умолчанию есть два текста: один показывает, когда программа запускается («Пожалуйста, введите свой текст здесь!»), И тот, когда пользователь успешно сохранил текст после нажатия клавиш Control + C («Текст»).успешно добавлено! ").
Проблема в том, что с помощью клавиш Control + C пользователи могут сохранять даже те два текста по умолчанию, которые я упоминал выше.Я использую keyListener для достижения своей цели, и он работает просто отлично.Кроме того, я написал оператор «If», чтобы исключить эти два текста по умолчанию, но он не работает.
txtArea.addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
}
@Override
public void keyPressed(KeyEvent e) {
String notThisTxt = txtArea.getText();
String text1 = "Please enter your text in here!";
String text2 = "Text added successfully!";
if(!notThisTxt.contentEquals(text1) || !notThisTxt.contentEquals(text2)) {
if ((e.getKeyCode() == KeyEvent.VK_C) && e.isControlDown()) {
try {
file.createNewFile();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
FileWriter fw = null;
String someSpace = " ";
BufferedWriter br = null;
try {
fw = new FileWriter(file.getAbsoluteFile(), true);
br = new BufferedWriter(fw);
br.write(someSpace);
txtArea.write(br);
}catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}finally {
}try {
br.close();
fw.close();
}catch(IOException e2) {
System.out.println("The programm doesn't want to close!" + e2);
}
}
txtArea.setText(txtAdded);
}
else{
System.out.println("test");
}
}
@Override
public void keyReleased(KeyEvent e) {
}
});
Я ожидал, что из этого кода получится весь текст, который пользователь может ввести, исохраните файл file.txt, за исключением двух строк, содержащих тексты по умолчанию.