こんにちは、このコードの断片を見てください。私の目的は、にリストされている単語の 1 つをテキストエリアに入力すると、アプリが反応するようにすることですslowa[]
。ご覧のとおり、作成inputMethodListner
した単語を入力すると、まったく機能しています。何が起こっているのかを確認するためにデバッグ出力を表示しようとしましたが、メソッドinputMethodTextChanged()
もinputMethodTextChanged()
一度も呼び出されていないことがわかります:(何が間違っていますか?
import java.awt.*;
import java.awt.event.InputMethodEvent;
import java.awt.event.InputMethodListener;
import javax.swing.*;
public class BrzydkieSlowa extends JFrame {
static String[] slowa = {"shit", "fuck"};
private BrzydkieSlowa(){
//Create and set up the window.
JFrame frame = new JFrame("Brzydkie slowa");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JTextArea textArea1 = new JTextArea(10,10);
textArea1.addInputMethodListener(new InputMethodListener() {
@Override
public void caretPositionChanged(InputMethodEvent arg0) {
int brzydkie = 0;
int i = 0;
while(brzydkie == 1 || i > 1){
if(textArea1.getText().compareTo(slowa[i])== 0)
brzydkie = 0;
i++;
}
if(brzydkie == 1)
JOptionPane.showMessageDialog(null, "brzydkie slowo");
}
@Override
public void inputMethodTextChanged(InputMethodEvent event) {
// TODO Auto-generated method stub
}
});
frame.getContentPane().add(textArea1, BorderLayout.CENTER);
//Display the window.
frame.setLocationRelativeTo(null);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
new BrzydkieSlowa();
}
}